Javascript onkeypress条件

时间:2014-10-01 19:34:37

标签: javascript html

我是第一次探索java脚本,你能帮助我吗?提前谢谢你 我在调理文本框时遇到问题 我有2个文本框,textbox1和textbox2,我希望textbox2仅在textbox2大于textbox1时在onkeypress上提醒我。我成功了,但输出不是我的预期。所以这就是我所做的。

//javascript
function validation()
{

 x = Number(document.getElementById('text1').value);
 y = Number(document.getElementById('text2').value);
 if(x < y)
 {

  alert('Invalid');
  return false;
 }

}

<!-- HTML -->
<html>
<body>
Text1:<input type="text" id="text1"  /><Br />
Text2:<input type="text" id="text2" onkeypress="return validation()" />
</body>
</html>

所以结果如下:
文本1:10
文本2:11

当text2是3位时,例如110出现警告消息,当我输入11时它应该出现,因为text1&lt; text2我错过了什么吗?或者我只是个白痴。

3 个答案:

答案 0 :(得分:0)

实际上它会在第一个字符上被调用,并且在第三个字符上工作,因此使用onchange

 <input type="text" id="text2" onchange="return validation()" />

最终你必须决定console.log而不是警告,因为它会阻止你测试方式。

答案 1 :(得分:0)

你可以看到这个例子: http://jsfiddle.net/yonatanalexis22/yxub03yt/1/

var text2 = document.getElementById('text2');
text2.onchange = function(){    
 x = Number(document.getElementById('text1').value);
 y = Number(this.value);
 if(x < y)
 {    
    alert('Invalid');

 }
}

答案 2 :(得分:0)

首先:您的输入是“文本”。如果要比较数字,请将输入类型更改为“数字”。

第二:添加监听器是cleaner way of handling this

所以HTML看起来像这样:

Text1:<input type="number" id="text1"  /><Br />
Text2:<input type="number" id="text2"/>

你的JavaScript就像这样:

document.getElementById("text2").addEventListener("change", function() {
    if($('#text1').val() < $('#text2').val()) alert();
});

这只是一个简短的版本。

这是JSFiddle