2012-05-11 28 views
76

là có anyway tôi có thể kích hoạt sự kiện thay đổi trên hộp chọn khi tải trang và chọn một tùy chọn cụ thể.Sự kiện thay đổi kích hoạt <select> bằng cách sử dụng jquery

Ngoài ra, chức năng được thực hiện bằng cách thêm trình kích hoạt sau khi liên kết hàm với sự kiện.

Tôi đã cố gắng để ra một cái gì đó giống như 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

làm bạn muốn thiết lập một tùy chọn đặc biệt trên tải? hoặc bạn muốn kích hoạt sự kiện thay đổi của mình? – ManseUK

+0

Bạn có thể mở rộng giải pháp cuối cùng không. Bạn đang cố gắng có một tùy chọn bắt buộc khi tải trang hoặc chọn một tùy chọn khác khi một mục cụ thể nào đó được chọn? –

+0

hi, cảm ơn phản hồi của bạn tôi đã có thể giải quyết vấn đề và đã ghi lại nó. – kishanio

Trả lời

154

Sử dụng val() để thay đổi thành giá trị (không phải văn bản) và trigger() để kích hoạt sự kiện theo cách thủ công.

Trình xử lý sự kiện thay đổi phải được khai báo trước trình kích hoạt.

Here's a sample

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

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

Ngoài ra sau khi thay đổi tùy chọn tôi muốn thực hiện chức năng thay đổi sự kiện. w.r.t [this] (http://jsfiddle.net/v7QWd/4/). hộp cảnh báo sẽ thực thi. – kishanio

+0

@KishanThobhani bạn nên gọi * sau * thêm trình xử lý. xem mẫu. – Joseph

+0

Rất tiếc, tôi rất tiếc. cảm ơn cho giải pháp mặc dù. – kishanio

17

Để chọn một lựa chọn, sử dụng .val('value-of-the-option') trên yếu tố lựa chọn. Để kích hoạt phần tử thay đổi, hãy sử dụng .change() hoặc .trigger('change').

Các sự cố trong mã của bạn là dấu phẩy thay vì dấu chấm trong $('.check'),trigger('change'); và thực tế là bạn gọi nó trước khi ràng buộc trình xử lý sự kiện.

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

Nó sẽ thay đổi thẻ mục thả xuống chọn html với id="edit_user_details".

0

liên kết nhượng bộ giá trị của các tùy chọn thẻ

<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

Nếu bạn muốn làm một số kiểm tra sau đó sử dụng cách này

<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> 
Các vấn đề liên quan