2010-06-08 40 views
7

Tôi có 2 tùy chọn chọn. Tôi muốn thay đổi các tùy chọn thả xuống trong tùy chọn chọn thứ hai dựa trên những gì tôi chọn trong các tùy chọn chọn đầu tiên. Làm thế nào để tôi làm điều đó trong jquery?Thay đổi tùy chọn trong hộp chọn dựa trên các tùy chọn chọn khác nhau

<select id="Manage"> 
    <option value="a">A</option> 
    <option value="b">B</option> 
    <option value="c">C</option> 
<select> 

Second chọn tùy chọn nếu A được chọn từ chọn tùy chọn đầu tiên

<select id='selectA'> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select> 

Bây giờ nếu B được chọn từ chọn tùy chọn đầu tiên

<select id='selectA'> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

Trả lời

8

Cái gì như:

$('#Manage').change(function() { 
    var options = ''; 
    if($(this).val() == 'a') { 
     options = '<option value="1">1</option><option value="2">2</option>'; 
    } 
    else if ($(this).val() == 'b'){ 
     options = '<option value="3">3</option><option value="4">4</option>'; 
    } 

    $('#selectA').html(options); 
}); 

Tất nhiên bạn có thể có các tùy chọn của mình, ví dụ: lưu trữ trong một mảng và kết hợp chúng trên bay hoặc bất cứ điều gì, đó là vào bạn.

tham khảo: .change(), .val()

+0

Tôi đã thử cách này nhưng không hoạt động !! – yogsma

+0

@yogsma: Làm việc cho tôi: http://jsbin.com/oceyo3/2 –

+0

Cảm ơn .. nó đã hoạt động thực sự. Tôi đã bỏ lỡ một dấu chấm phẩy ở một nơi. – yogsma

3

Bạn nên với 3 kỹ thuật khác nhau có thể:

  1. Bạn tải các tùy chọn cho phần thứ hai chọn với AJAX càng sớm càng là người đầu tiên được lựa chọn
  2. Bạn tiết kiệm tất cả các tùy chọn cho lựa chọn thứ hai trong một đối tượng JSON và sau đó bao gồm tùy chọn này sau khi chọn một đối tượng đầu tiên
  3. Bạn xác định trước tất cả lựa chọn và hiển thị/ẩn VÀ tắt/bật các lựa chọn khác

Đầu tiên có lẽ là tốt nhất khi bạn có thể nhận được giá trị từ cơ sở dữ liệu tùy thuộc vào lựa chọn người dùng fisrt và bạn có thể xây dựng phía máy chủ chọn lỗ.

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