2016-08-01 63 views
0

我有一個noob問題。在jquery中得到多個選擇

我想在HTML中製作多選列表框。如果用戶的選擇包含項目「其他」,則文本框將出現在列表框下方。

我第一次來到了這一點:

onchange = "displayDiv(this.options[this.selectedIndex].text) 
-------------------------------------------------------------- 
function displayDiv(val) { 
    if (val == "OTHER") { 
     $("#divName").show(); 
    } else { 
     $("#divName").hide(); 
    } 
} 

然後我意識到這不會有多重選擇工作。你如何檢索所有選定的項目作爲數組或jQuery中的列表?

回答

0

如果您有<select>元素,則返回的值爲$('select').val()的是帶有所選值的Array

您可以使用

$('select').val().indexOf('OTHER') > -1 

在jQuery中< 3.0,如果沒有選擇可言,val()將返回null,所以你應該檢查是否值= NULL之前使用indexOf!

if ($('select').val()) { 
    if ($('select').val().indexOf('OTHER') > -1) { 
     // do something 
    } 
} 
+0

謝謝德克爾!這部分工作。我發現.val()返回選項的值而不是字符串。但是既然現在我知道我可以選擇這個選項的價值。再次感謝! –

+0

正如我的回答中所提到的 - 如果'select'元素是一個多重選擇,'val()'返回的值是一個'Array',而不是一個字符串。如果它對你有幫助,歡迎接受我的回答。 – Dekel

+0

是的,你絕對是對的。這只是我的項目設置是這樣的''所以它返回5而不是「OTHER」。我應該使用什麼屬性來獲取字符串而不是值? –