Попробуйте это:
$(document).on('change', 'select[name="merchant-category"]',function() {
console.log('called');
});
Используя синтаксис .on(
с селектором, вы можете ок tch динамически созданных элементов.
Независимо от того, $('select[name="merchant-category"]')
должен возвращать несколько элементов, а не только первый. Если это не так, дважды проверьте наличие опечаток в коде.
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>
ли добавлены другие элементы динамически? –
Он будет срабатывать для всех, которые существуют во время запуска кода. Если вы добавляете элементы после запуска, вам необходимо использовать событие делегирования – charlietfl
http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements –