在我的文本框,我有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()">