簡體   English   中英

使用jQuery獲取並設置下拉值

[英]Get & set drop down value using jQuery

如果用戶從下拉列表中選擇一個選項,它將顯示為文本框,但如果他選擇具有值“其他”的選項,則會出現一行為其他人鍵入值。

我的代碼工作正常,除非選項值不等於“其他”

<script type="text/javascript"><!--
function setAndReset(box) {
if(box.value == 'Other'){
    $("#ShowHide").hide();
}
document.FormName.hiddenInput.value = box.value;

}
//-->
</script>

<body bgcolor="#ffffff">
<form id="FormName" action="" method="get" name="FormName">
    <select name="choice1" size="1" onchange="setAndReset(this);">
    <option value="one">first</option>
    <option value="two">second</option>
    <option value="three">third</option>
    <option value="other">Other</option>
    </select>

    <input type="text" name="hiddenInput" value="">
    <tablt><tr id="ShowHide"><td>
        <input type="text" name="otherInput">
    </td></tr></table>
    <input type="submit" name="submitButtonName">
</form>
</body>

但它不顯示/隱藏&不在文本框中設置值。

如果使用jquery解決,那么我將感謝您的代碼。

謝謝。

像這樣做:

$(document).ready(function() {
    $("select[name=choice1]").change(function() {
       $(this).val() == 'other' ? $("#ShowHide").show() : $("#ShowHide").hide();
    });
});

並失去內聯onchange函數調用。 在這里試試吧

我喜歡karim79的答案,但更喜歡它更緊湊:

$(function() {
    $("select[name=choice1]").change(function() {
       $("#ShowHide").toggle($(this).val() === "other");
    });
});
  • 而不是$(document).ready(f) ,做$(f) ,它完全相同
  • 而不是松散的== ,使用===進行精確比較(在這種情況下它無關緊要,但==可以表現得很奇怪,所以你應該避免它到處都是)
  • 使用toggle(b)代替show() / hide()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM