2013-07-01 19 views
9

Tôi muốn trả lời người dùng chọn một mục trong phần tử đã chọn. Tuy nhiên, jQuery này:Sự kiện nào sẽ xảy ra khi mục trong danh sách chọn/thả xuống HTML được chọn?

$('#platypusDropDown').select(function() { 
    alert('You selected something'); 
}); 

... không có gì. Nó cho thấy không có cảnh báo, mặc dù jsFiddle thấy nó là jQuery hợp lệ.

Sự kiện nhấp hoạt động nhưng quá nhanh - nó kích hoạt khi nhấp vào phần tử chọn, trước khi thực hiện lựa chọn.

Tất nhiên, tôi thực sự muốn làm một cái gì đó như:

$('#platypusDropDown').select(function() { 
    var selection = $('platypusDropDown').val; 
    $.getJSON('platypus.json', selection, data() { 
     // . . . 
    }); 
}); 

HTML:

<select id="platypusDropDown"> 
    <option value="duckbill">duckbill</option> 
    <option value="duckbillPlatypus">duckbillPlatypus</option> 
    <option value="Platypus">Platypus</option> 
    <option value="Platypi">Platypi</option> 
</select> 

Trả lời

10

Bạn cần phải sử dụng change kiện

$('#platypusDropDown').change(function() { 
    var selection = this.value; //grab the value selected 
    $.getJSON('platypus.json', selection, data() { 
    . . . 
    }); 
}); 

Fiddle

Thêm $('platypusDropDown').val đây val nên val() và bạn không cần phải tạo ra một đối tượng jquery lại trên phần tử, this bên trong handler đại diện DOM yếu tố (chọn trên đó sự kiện này chắc chắn sẽ) và bạn có thể trực tiếp truy cập giá trị với this.value hoặc $(this).val()

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