我正在使用以下代码在我的一个表单中呈现一个选择框,当我检查时,我可以在Firefox中看到以下代码
<select name="make">
<option value="13501">Jeep</option>
<option value="26838">Joyner</option>
<option value="13658">Kia</option>
<option value="13898">Lada</option>
</select>
但是当我检查表单元素时,我可以看到
<select name="make">
<option value="13501">Jeep</option>
<option value="13658">Kia</option>
<option value="13898">Lada</option>
<option value="26838">Joyner</option>
</select>
任何人都请为此提出解决方案吗?
答案 0 :(得分:3)
这不是一个真正的好习惯,但是......
如果您为值添加空格,则chrome不会将值视为数字,也不会按值对其进行排序。
示例:
<select>
<option value=" 3">Third</option>
<option value=" 1">First</option>
<option value=" 2">Second</option>
</select>
好的一面是你不必像有人建议的那样添加然后从ID中删除字母字符(不记得是否在这个或其他有类似问题的帖子中),你可以很容易地修剪它但是大多数时候空间被忽略,如果你发布或将它们发送到另一个文件,他们只会看到整数值而不是空格。
答案 1 :(得分:2)
这也发生在我身上。使用以下客户端JS:
var data=incoming_json_assoc_array_of_counties_sorted_alphabetically_by_county //eg 47=>"west midlands"
for (key in data) {
options.push('<option value="' + key + '">' + data[key]+ '</option>');
}
$('#county_id').val(options.join(''));
似乎chrome不支持整数作为属性名称,或者按键而不是值排序。无论数据的价值如何
由于我的大多数数组都是num =&gt;数据关联数组,因此背面很痛苦。
请访问http://code.google.com/p/chromium/issues/detail?id=12169获取解释,仍在寻找解决方法/修复方法。
这不是在FF或基于webkit的safari中做到的。 尝试使用PC和MAC chrome并遇到同样的问题。
我想的另一个选择是在服务器端呈现HTML,只需使用你的JS将数据存入..标签,而不是生成客户端。
<强> [更新] 强> 请参阅Google Chrome: JavaScript associative arrays, evaluated out of sequence以获得良好的答案
[编辑2013] 显然,这仍然不是fixed根据ECMAScript标准这是有效的行为,但并不是人们会“期望”它的表现。您是否使用chosen.js来帮助您解决问题。