javascript выберите входное событие - PullRequest
2 голосов
/ 12 августа 2011

Я пытаюсь создать выборочный ввод из JavaScript и привязать функцию к тому моменту, когда пользователь изменяет параметр. Пока что у меня есть:

filter.change = function() {
    console.log("CHANGED");
}

Но ничего не происходит при выборе чего-то другого. Что не так с этим кодом. Кроме того, как я могу получить новое выбранное значение в функции? Что-то вроде:

console.log(this.value + "has been selected")

Ответы [ 3 ]

10 голосов
/ 12 августа 2011

Вы были близки, вам нужно использовать onchange:

filter.onchange = function() {
    alert("CHANGED");
    //You can alert the value of the selected option, using this:
    alert(this.value + " was selected");
}

Конечно, как сказал Делан, вы должны addEventListenerattachEvent), когда это возможно. Пример:

//Define a onchange handler:
var changeHandler = function() {
    alert("CHANGED");
    //You can alert the value of the selected option, using this:
    alert(this.value + " was selected");
}
//First try using addEventListener, the standard method to add a event listener:
if(filter.addEventListener)
  filter.addEventListener("change", changeHandler, false);
//If it doesn't exist, try attachEvent, the IE way:
else if(filter.attachEvent)
  filter.attachEvent("onchange", changeHandler);
//Just use onchange if neither exist
else
  filter.onchange = changeHandler;
5 голосов
/ 12 августа 2011

Если вы используете этот способ, имя свойства будет onchange:

filter.onchange = function() {
     alert(this.value + "has been selected");
};

Дополнительная информация:

Примечание: Существует также другой способ регистрации обработчиков событий, который позволяет назначать несколько обработчиков событий для одного и того же события. Для получения дополнительной информации посетите quirksmode.org - Расширенные модели регистрации событий .

2 голосов
/ 12 августа 2011

если вы используете jQuery , вы можете использовать его вот так

$('select').change(function(){
   alert($('select').val() + ' was just selected');
});

или используйте .onchange

filter.onchange = function() {
    alert(this.value + " was selected");
}

вместо .change

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...