2012-04-01 48 views
8

Tôi có HTML như thế này:gọi thay đổi() xử lý sự kiện nếu tôi chọn nút radio programatically

<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 

Và sau kịch bản

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

Thứ nhất, tôi đã thêm một sự kiện thay đổi để nút radio. xử lý sự kiện thay đổi được kích hoạt nếu tôi chọn nút radio từ giao diện người dùng. Nhưng nó không được kích hoạt khi tôi thay đổi giá trị nút radio đã chọn một cách chuyên nghiệp về mặt ngữ pháp.

Tôi muốn change event cũng được kích hoạt khi tôi chọn nút radio theo ngữ pháp về mặt ngữ pháp.

+0

Bạn chọn một nickname xấu . bạn sẽ làm gì vào năm tới...? – gdoron

+0

Tôi sẽ đổi tên thành tên thật của mình sau một vài ngày. – shashwat

+0

có thể trùng lặp của [Sự kiện thay đổi hộp kiểm không kích hoạt] (http://stackoverflow.com/questions/7387531/checkbox-change-event-not-firing) ... vui lòng sử dụng tìm kiếm trước khi bạn đặt câu hỏi mới. –

Trả lời

8

Bạn có thể sử dụng trigger() để lập trình nâng cao một sự kiện:

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

Nó sẽ không tự động thay đổi. Bạn phải làm một trong những điều sau đây:

hoặc

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

hoặc

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

Cảm ơn @FreeCandies Tôi thích phương pháp thứ 2 u mô tả. – shashwat

Các vấn đề liên quan