在我的文本框,我有2个事件的onchange和的keydown(用于输入) 现在我做了onchange事件验证,如果任何验证失败,然后我提出警告 但是当我按按回车键,如果验证失败然后我不想执行 keydown事件防止其它变更事件的keydown
任何建议
感谢, 聂
在我的文本框,我有2个事件的onchange和的keydown(用于输入) 现在我做了onchange事件验证,如果任何验证失败,然后我提出警告 但是当我按按回车键,如果验证失败然后我不想执行 keydown事件防止其它变更事件的keydown
任何建议
感谢, 聂
你需要做的是检查的keydown关键代码的值无效形式。 另外定义一个局部变量,假设2个函数在同一个上下文中定义,如果他们不使用apply在同一个上下文中调用它们。
在那你可以有一个检查if(event.keyCode != 13 && !invalid){ [Your operations] }
你能得到关于键码here的更多信息。
我希望这会有所帮助。
你会想创建一个全局变量(布尔),你的onchange事件将会改变。自动将布尔值设置为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()">
不知道你想要什么,但如果你想控制你可以做一个这样的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()">