2010-03-24 15 views
5

Tôi đã đoạn mã sau:jQuery Hiện một Textbox Khi một tùy chọn được chọn

<select> 
<option value="Type 1">Type 1</option> 
<option value="Type 2">Type 2</option> 
<option value="Type 3">Type 3</option> 
<option value="Other">Other</option> 
</select> 

<input type="text" id="other" /> 

Những gì tôi muốn làm là sử dụng jQuery làm ô bên dưới ẩn theo mặc định, và sau đó hiển thị nó nếu người dùng lựa chọn tùy chọn khác từ trình đơn thả xuống.

Trả lời

6
<select id="sel"> 
<option value="Type 1">Type 1</option> 
<option value="Type 2">Type 2</option> 
<option value="Type 3">Type 3</option> 
<option value="Other">Other</option> 
</select> 

<input type="text" id="other" style="display: none;" /> 

$('#sel').change(function() { 
    $('#other').css('display', ($(this).val() == 'Other') ? 'block' : 'none'); 
}); 
+0

Mặc dù Cameron không yêu cầu ẩn hộp văn bản nếu có bất kỳ tùy chọn nào khác được chọn ... – ScottE

+0

@ScottE: điều này đúng, nhưng tôi sẽ rất ngạc nhiên nếu đó không phải là ý định của OP. –

+0

Điều này làm việc rất tốt nhờ. – Cameron

1

Hãy thử điều này:

<select id="selectbox_id"> 
<option value="Type 1">Type 1</option> 
<option value="Type 2">Type 2</option> 
<option value="Type 3">Type 3</option> 
<option value="Other">Other</option> 
</select> 

<input type="text" id="other" /> 

JQuery:

$(function(){ 
    // hide by default 
    $('other').css('display', 'none'); 

    $('selectbox_id').change(function(){ 
    if ($(this).val() === 'Other') { 
    $('other').css('display', 'block'); 
    } 
}); 
}); 
+0

lý do bỏ phiếu xuống ...............? – Sarfraz

+0

Không chắc chắn tại sao điều này lại bị bỏ phiếu. Nó hoạt động tốt ngoại trừ có một dấu "=" thêm trong câu lệnh "if". – jj2

9

Không cần bất kỳ css đây.

$('#sel').change(function() { 
    var selected = $(this).val(); 
    if(selected == 'Other'){ 
     $('#other').show(); 
    } 
    else{ 
     $('#other').hide(); 
    } 
}); 
+0

chắc chắn chưa từng nghe ai nói "không cần css" trước đây. tại sao bạn lại muốn tránh sử dụng css? –

+0

@David Hedlund, điểm của việc sử dụng css để hiển thị và ẩn các phần tử khi jQuery có chức năng được tích hợp sẵn. Tôi đoán nếu bạn vẫn muốn tính toán với bàn tính đi trước, nhưng việc sử dụng show/hide thì thanh lịch hơn nhiều. – Gabe

+0

Thực ra, tôi thấy câu trả lời của David Hedlund là thanh lịch hơn. Nếu bạn nhìn vào nội dung được hiển thị trong firebug, bạn sẽ thấy rằng hiển thị css đang được sử dụng dưới các bìa. – ScottE