2012-05-11 4 views
76

В любом случае я могу вызвать событие изменения в поле выбора при загрузке страницы и выбрать конкретную опцию.Событие смены триггера <select> с использованием jquery

Также функция запускается путем добавления триггера после привязки функции к событию.

Я пытался выводить что-то вроде this

<select class="check"> 
<option value="one">one</option> 
<option value="two">two</option> 
</select> 

$(function(){ 
    $('.check').trigger('change'); //This event will fire the change event. 
    $('.check').change(function(){ 
     var data= $(this).val(); 
     alert(data);    
    }); 
}); 

http://jsfiddle.net/v7QWd/1/

+0

сделать вы хотите установить конкретную опцию нагрузки? или хотите запустить событие изменения? – ManseUK

+0

Не могли бы вы расширить окончательное решение. Вы пытаетесь настроить параметр при загрузке страницы или выбрать другой вариант, если выбрано что-то конкретное? –

+0

привет, спасибо за отзыв, я смог решить проблему и документировал ее. – kishanio

ответ

154

Используйте val(), чтобы изменить значения (а не текст) и trigger() вручную инициировать событие.

Обработчик события изменения должен быть объявлен перед триггером.

Here's a sample

$('.check').change(function(){ 
    var data= $(this).val(); 
    alert(data);    
}); 

$('.check') 
    .val('two') 
    .trigger('change'); 
+0

Также после изменения опции мне захотелось выполнить функцию события изменения. w.r.t [this] (http://jsfiddle.net/v7QWd/4/). поле предупреждения должно выполняться. – kishanio

+0

@ KishanThobhani вы должны называть это * после * добавлением обработчика. см. образец. – Joseph

+0

К сожалению, мой плохой. спасибо за решение, хотя. – kishanio

17

Для выбора опции используйте .val('value-of-the-option') на выборе элемента. Чтобы запустить элемент изменения, используйте .change() или .trigger('change').

Проблемы в коде представляют собой запятую вместо точки в $('.check'),trigger('change'); и тот факт, что вы вызываете ее перед привязкой обработчика события.

5
$('#edit_user_details').find('select').trigger('change'); 

Было бы изменить тег выпадающий элемент выберите HTML с id="edit_user_details".

0

давать ссылки в значении опции тега

<select size="1" name="links" onchange="window.location.href=this.value;"> 
    <option value="http://www.google.com">Google</option> 
    <option value="http://www.yahoo.com">Yahoo</option> 
</select> 
0

Если вы хотите сделать какие-либо проверки, то использовать этот способ

<select size="1" name="links" onchange="functionToTriggerClick(this.value)"> 
    <option value="">Select a Search Engine</option>   
    <option value="http://www.google.com">Google</option> 
    <option value="http://www.yahoo.com">Yahoo</option> 
</select> 

<script> 

    function functionToTriggerClick(link) { 

    if(link != ''){ 
     window.location.href=link; 
     } 
    } 

</script> 
Смежные вопросы