我有以下脚本
<select id="select1">
<option value="1">1day</option>
<option value="2">2day</option>
<option value="3">3day</option>
</select>
<select id="select2">
<option value="1">1day</option>
<option value="2">2day</option>
<option value="3">3day</option>
</select>
和jquery
$("#select2").change(function() {
var max_value = parseInt($("#select2 :selected").val());
var min_value = parseInt($("#select1 :selected").val());
if(max_value < min_value)
{
$("#select1").val($(this).val());
}
});
现在,无论如何我无法理解 - 如果选项元素的值是整数,为什么我必须使用parseInt()?在某些情况下,如果没有parseInt(),它就无法工作。
由于
答案 0 :(得分:5)
表单字段值始终存储为字符串。它们是否看起来像整数是无关紧要的;他们是字符串。在处理它们之前,您需要将它们转换为整数:)
答案 1 :(得分:4)
http://www.uvsc.edu/disted/decourses/mct/2760/IN/krutscjo/lessons/06/ff_05.html
除非您明确告诉它是一个数字,否则Javascript会将大多数内容视为字符串。一个值得注意的例子是从表单元素中获取值。根据浏览器和用户输入的不同,您可能会得到一些意想不到的结果。
答案 2 :(得分:1)
值永远不会是整数,事实上你把数字放在那里而不是谁知道什么是你的选择。
答案 3 :(得分:1)
jQuery的val()函数总是返回一个字符串。在许多情况下,你可以混合数字和字符串(例如在算术中),当比较两个字符串变量时,javascript将执行字符串比较,而不是数字比较(这是预期的)