2014-10-20 5 views
0

может кто-нибудь сказать мне, что случилось со следующим кодом:Сменить событие JQuery?

<html> 
    <head> 
    </head> 
    <body> 
     <select name="target"> 
      <option value="item1">item1</option> 
      <option value="item2">item2</option> 
      <option value="item3">item3</option> 
     </select> 
    </body> 
</html> 
<script> 
    $(".target").change(function() { 
     alert("Handler for .change() called."); 
    }); 
</script> 

Ничего предупреждения об изменении пункта !!? Я что-то пропустил Спасибо.

+0

Селекторы jQuery используют синтаксис селектора css. В таблице стилей, как бы вы выбрали этот элемент? Этот же селектор - тот, который вы использовали бы в jQuery. –

ответ

2

Положите id на вашем select элемента и использования, в селекторе вместо:

Имена ar е для отправки формы, идентификаторы должны использоваться для DOM обхода:

$('#target').on('change', function() { 
 
    alert('changed to ' + this.value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="target" id="target"> 
 
    <option value="item1">item1</option> 
 
    <option value="item2">item2</option> 
 
    <option value="item3">item3</option> 
 
</select>

NB: .on('change', ...) вместо .change(...) будет легче найти ваши регистрации событий в коде.

+0

Я пробовал это решение, но он не работал – Riad

+0

@Riad, в этом случае у вас есть еще одна проблема - возможно, не загружая jQuery должным образом. – Alnitak

2

В настоящее время вы подключаете обработчик событий для всех элементов с классаtarget, в то время как элемент, который вы хотите целевой имеет имя цели.

Вы должны использовать селектор атрибута:

$("select[name=target]").change(function() { 
    alert("Handler for .change() called."); 
}); 

Или, применить класс соответствия для вашего элемента:

<select name="target" class="target"> 
    <option value="item1">item1</option> 
    <option value="item2">item2</option> 
    <option value="item3">item3</option> 
</select> 
+0

, но лучше было бы поставить вместо этого элемент 'id' или' class'. Имена для отправки формы, идентификаторы для обхода DOM. – Alnitak

+0

dunno - не был я, хотя лично я считаю, что идентификатор более подходит, чем класс в данных обстоятельствах. – Alnitak

+0

он не работает, я пробовал это решение. – Riad

Смежные вопросы