我有2个数字输入字段,当用户停止输入时,下面会运行。我正在做的是检查输入数字是否大于输入b以及是否显示错误。
问题是计算效果不佳。例如,如果a为200且b为100,则无效,但如果a为200且b为5
,则无效不确定为什么......所以任何帮助都会非常感激。
$("#input_6_23, #input_6_24").on({
blur: function() {
var a = document.getElementById("input_6_23").value;
var b = document.getElementById("input_6_24").value;
if(a > b) {
alert(a is bigger than b);
}
}
});
答案 0 :(得分:5)
它的工作原理如何?
jQuery(document).ready(function($){
$("#input_6_23, #input_6_24").on('blur',function() {
check();
});
function check(){
var a = Number($("#input_6_23").val());
var b = Number($("#input_6_24").val());
if(a > b) {
alert(a+' is bigger than '+b);
} else {
alert("error");
}
}});
答案 1 :(得分:1)
转变为:
var a = parseInt(document.getElementById("input_6_23").value, 10);
var b = parseInt(document.getElementById("input_6_24").value, 10);
答案 2 :(得分:0)
您正在进行字符串比较,而不是数字比较。您可以在比较之前转换为数字(请注意在检索+
时添加.value
符号):
$("#input_6_23, #input_6_24").on({
blur: function() {
var a = +document.getElementById("input_6_23").value;
var b = +document.getElementById("input_6_24").value;
if(a > b) {
alert("a is bigger than b");
}
}
});
P.S。您还必须将a is bigger than b
变为带有引号的有效字符串。
将字符串转换为数字有多种方法:
var num = parseInt(str, 10);
var num = +str;
var num = Number(str);
并且,希望这只是用于测试,因为在alert()
事件上放置blur
在实际的实际使用场景中非常讨厌。