2013-02-14 50 views
0

此显示/隐藏功能与选择元素一起工作正常,但当我将它们更改为MultiSelect元素(多个=“多个”)和/或添加方括号时它停止工作到元素名称(将MultiSelect表单元素提交给数据库所必需)。我如何改变它,以便它可以与MultiSelect元素一起使用?此显示/隐藏功能不适用于MultiSelect元素

工作示例可在这里:http://jsfiddle.net/chayacooper/yaq5F/8/

JS

$(document).ready(function() { 
    $("#row1, #row2").hide(); 
    if ($("[name=item1]").val() === "Null" || $("[name=item1]").val() === "") { 
     $("#row1").show(); 
    } else { 
     $("#row2").show() 
    }; 
}); 

HTML

<div id=row1 style="font-weight:bold">Row 1 - Nothing selected</div> 
<div id=row2 style="font-weight:bold; display:none;">Row 2 - Something selected</div> 

<select name=item1 class="field"> 
<option value="Null">Select</option> 
<option value=1>Option 1</option> 
<option value=2>Option 2</option> 
<option value=3>Option 3</option> 
</select> 

回答

2

当使用multiple选项,返回值是一个数组,不一个字符串,因为您可以通过holdin选择多个值按下控制键。

您可能需要的东西来检查值一样$.inArray("Null", $(".field").val())


以供将来参考,它确实有助于去看看有什么价值回来就是。简单的console.log($(".field").val())就是我所做的一切,看看发生了什么。

+0

我很难找出插入代码的位置。你介意告诉我如何将它添加到我的示例代码? – 2013-02-14 21:55:36

+0

当然 - > http://jsfiddle.net/ChrisMBarr/yaq5F/11/ - 请记住,当添加'multiple'属性时,将“Select”作为第一项确实没有意义。你可能想要做一些不同的事情。 – 2013-02-14 22:41:18

+0

谢谢:-D我使用了几个多选元素,这些元素是根据从db中获取的值预选的。有没有办法做到这一点使用元素的名称,或者我需要使用ID /类? – 2013-02-14 23:39:10