Try this:
$(document).on('change', 'select[name="merchant-category"]',function() {
console.log('called');
});
By using the .on(
syntax with a selector, you are able to catch dynamically created elements as well.
Regardless $('select[name="merchant-category"]')
should return multiple elements, not just the first. If it isn't, double-check for typos in your code.
http://jsfiddle.net/vysft3go/
$(function() {
$(document).on('change', 'select[name="merchant-category"]', function() {
var notification = $('<p>').text($(this).attr('id') + ' changed!');
$('#updates').append(notification);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<form>
<select name="merchant-category" id="select1">
<option>1</option>
<option>2</option>
</select>
<select name="merchant-category" id="select2">
<option>1</option>
<option>2</option>
</select>
</form>
<div id="updates"></div>