ima*_*007 1 jquery internet-explorer-7
我正试图从以下select元素中获取值.假设用户选择第一个选项.
<select class="your-class" type="text">
<option value='one'>One</option>
<option value='two'>Two</option>
<option value='three'>Three</option>
</select>
Run Code Online (Sandbox Code Playgroud)
javascript:
$("select.your-class").val()
//returns ["one"] in IE7, returns "one" in other browsers
Run Code Online (Sandbox Code Playgroud)
为什么IE7会返回一个数组,而不是一个字符串?这不是选择多元素.
问题是type似乎错误地添加到select元素的属性(可能它最初是一个文本input元素,它被切换到a select)?删除该属性以解决此问题.
在封面下,jQuery使用以下布尔值来确定您的select元素是选择元素(标准选择框)还是选择倍数(具有multiple属性的select元素).
var IsSelectOne = elem.type === "select-one" || elem.selectedIndex < 0;
Run Code Online (Sandbox Code Playgroud)
设置type属性会覆盖'select-one'IE7中的默认值,这会导致此布尔值为false.由于布尔值为false,这告诉jQuery你有一个select-multiple元素,它为你提供了一个数组,而不是一个字符串.