在我的文本框上我有2个事件onchange和keydown(用于输入) 现在我对onchange事件进行了验证,如果任何验证失败,那么我会提高警报 但是当我按下输入按钮如果验证失败,那么我不想执行 keydown事件
任何建议
谢谢, NIK
答案 0 :(得分:0)
您需要做的是检查keydown上的密钥代码的值是否存在无效表单。 还要定义一个局部变量,假设这两个函数是在同一个上下文中定义的,如果它们不用,则应用于在同一个上下文中调用它们。
此时您可以查看if(event.keyCode != 13 && !invalid){ [Your operations] }
您可以获得有关密钥代码here的更多信息。
我希望这会有所帮助。
答案 1 :(得分:0)
您可能希望创建一个onchange事件将改变的全局变量(boolean)。自动将布尔值设置为false,经过验证后将其更改为true。在激活keydown事件之后,您将需要检查并查看它是否是回车键,并且在采取任何进一步操作之前它已通过所有验证。
<script type="text/javascript">
var passedChecks = false;
function validateText(e) {
var src = (window.event) ? window.event.srcElement: e;
if (src.value == b) { // verify your logic is true.
passedChecks = true;
}
}
function validateKey(e) {
var src = (window.event) ? window.event.srcElement: e;
if (src.keyCode == 13) {
if (passedChecks == true) {
// process your code.
}
}
}
</script>
<input type="text" id="myText" onchange="validateText()" onkeydown="validateKey()">
答案 2 :(得分:0)
不确定您想要什么,但如果您想控制keydown事件,您可以这样做:
<script type="text/javascript">
function onKeyDown()
{
if(event.keyCode == 13 ) // if enter key
{
// your validation-checking code here
if("validationfailed")
return false // prevent the event from happening if validation failed
else return true;// validating ok, allow it.
}
else
{
// another key, alow it.
return true;
}
}
</script>
<input type="text" id="myText" onchange="validateText()" onkeydown="return onKeyDown()">