如果两个字段都有值,我想在列表中输出两个input
字段值中哪一个更高。
除了我还要比较0
值之外,这似乎有效。现在,如果我尝试使用0
和99
,则没有任何结果,因为.input1
不是true
。另外,如果我有更多字段可供比较,是否有更好的方法可以做这样的事情?如果经常检查keyup
,我不希望浏览器崩溃。
我的HTML:
<input title="input 1" type="tel" class="input1" value="" maxlength="3" />
<input title="input 2" type="tel" class="input2" value="" maxlength="3" />
<ul></ul>
我的JavaScript:
var input1 = '';
var input2 = '';
var input1Title = '';
var input2Title = '';
$("input").keyup(function () {
input1 = parseInt($('.input1').val(), 10) || 0;
input1Title = $('.input1').attr("title");
input2 = parseInt($('.input2').val(), 10) || 0;
input2Title = $('.input2').attr("title");
if (input1 && input2) {
var description = '';
if (input1 > input2) {
description = input1Title + ' is greater than ' + input2Title;
} else if (input1 < input2) {
description = input1Title + ' is less than ' + input2Title;
} else {
description = input1Title + ' is the same ' + input2Title;
}
$("ul").append("<li>" + description + "</li>");
}
});
请参阅我的JSFiddle:http://jsfiddle.net/C5pgc/
答案 0 :(得分:4)
如果字段为空,则强制值为0
。然后你的条件检查input1 && input2
,这将失败,因为在JS 0
中等于false
。当你将这些值强制为零时,你就不需要那种条件了。
$("input").keyup(function () {
input1 = parseInt($('.input1').val(), 10) || 0;
input1Title = $('.input1').attr("title");
input2 = parseInt($('.input2').val(), 10) || 0;
input2Title = $('.input2').attr("title");
var result = '';
if (input1 > input2) {
result = ' is greater than ';
} else if (input1 < input2) {
result = ' is less than ';
} else {
result = ' is the same ';
}
$("ul").append("<li>" + input1Title + result + input2Title + "</li>");
});
注意我也会干掉最后一部分。
答案 1 :(得分:0)
您可以尝试添加两个额外的if。一个询问input1是否等于0而input2大于0然后再次相反,反之亦然。