2012-04-01 14 views
8

Mam HTML tak:zmiana call() obsługi zdarzeń, jeśli wybiorę opcję programowo

<input type="radio" name="type" value="FL" checked="checked" />Fixed 
<input type="radio" name="type" value="SV" />Saving 
<input type="radio" name="type" value="L2" />Type 2 

I Poniższy skrypt

$(function() { 
     $('input[name=type]').change(function() { 
      alert($(this).val()); 
     }); 
     $('input[value=SV]').attr('checked', 'checked'); 
    }); 

Po pierwsze, dodaliśmy zdarzenia zmiany przycisk opcji. zmiana procedury obsługi zdarzenia wyzwalana, jeśli wybieram przycisk radiowy z interfejsu użytkownika. Nie uruchamia się jednak, gdy zmienię wybraną wartość przycisku opcji pro gramowej.

Chcę również, aby change event został wyzwolony po wybraniu przycisku opcji pro gramowej.

+0

wybrać złe imię . co będziesz robił w przyszłym roku...? – gdoron

+0

Zmienię go na moje prawdziwe imię po kilku dniach. – shashwat

+0

możliwy duplikat [nie zmienia się zdarzenia zdarzenia Checkbox] (http://stackoverflow.com/questions/7387531/checkbox-change-event-not-firing) ... użyj zapytania, zanim zadasz nowe pytanie. –

Odpowiedz

8

Można użyć trigger() programowo podnieść zdarzenie:

$(function() { 
    $('input[name=type]').change(function() { 
     alert($(this).val()); 
    }); 
    $('input[value=SV]').attr('checked', 'checked').trigger('change');   
}); 
1

Nie zmieni się automatycznie. Trzeba wykonać jedną z następujących czynności:

albo

$('input[value=SV]').attr('checked', 'checked').trigger("change") 

lub

$('input[value=SV]').attr('checked', 'checked').change(); 
+0

Dzięki @FreeCandies Podoba mi się druga metoda, którą opisujesz. – shashwat