2017-06-05 61 views
0

我在jsp中輸入文本字段,並且使用onChange =「validation(this);」檢查是否爲空輸入等,但當我使用Tab鍵時,光標將移動到下一個字段,如何將光標保持在驗證字段上?如何使用Tab鍵驗證後保持焦點

function validation(id) { 
    var obj = document.getElementById(id); 
    obj.value = obj.value.toUpperCase(); 

    if(value == "") { 
     obj.focus(); 
     obj.select(); 
    } 
} 
+0

您的通話電平變化之前,因此提供了一個足夠的時間間隔'驗證(這)' - 但驗證預期的ID! ...或者'onChange =「驗證(this.id);」'或'function validation(obj){'(並移除'var obj = getElementById'行) - 看看是否有助於 –

+0

在瀏覽器中快速瀏覽開發人員工具會顯示錯誤 –

回答

0

添加validation與按鈕,而不是onchange事件在輸入框中。而if(value == "")值是不確定的所以更改,如果條件與!Obj.value.trim()其抓住的假條件。用於去除不想要的空間

更新blur 事件而不是onchange。其

使用trim()只允許下一個輸入只輸入存在填充。

function validation(obj) { 
 
    obj.value = obj.value.toUpperCase(); 
 

 
    if(!obj.value.trim()) { 
 
     obj.focus(); 
 
     //obj.select(); 
 
    } 
 
}
<input id="input" type="text" onblur="validation(this,event)"> 
 
<input id="input" type="text" onblur="validation(this,event)">

+0

我可以使用輸入框嗎? – mikezang

+0

@mikezang看到我的updated.i被添加了輸入框 – prasanth

+0

在我的表單中,還有兩個用於保存和回退的按鈕,當我點擊保存時,我希望在Blur動作,但是當我點擊回來時,我不想onBlur動作,我該怎麼辦? – mikezang

0

您可以添加 '模糊' 的事件。在檢查keyCode之後。對於製表鍵是0。使用setTimeout是因爲當前元素一旦發生onblur事件就會失去焦點。聚焦回元素

var obj = document.getElementById('inputField'); 
 
obj.addEventListener('blur', function(event) { 
 
    if (event.which === 0 && event.target.value == '') { 
 
    setTimeout(function(){ 
 
    event.target.focus(); 
 
    },1000) 
 
    
 

 
    } 
 
})
<input id='inputField' onchange='validation(this.id)'>

+0

這不行,沒有任何動作。 – mikezang

+0

@mikezang抱歉,我無法得到你。這是在我的最後。你能澄清一下哪些工作不正常嗎? – brk

+0

查看我上面的評論,其實有兩個按鈕保存和返回以及一些字段。我會檢查輸入長度和null,當我使用Tab鍵,如果我點擊保存,驗證也需要完成,但如果我點擊返回,沒有任何驗證,你能告訴我詳細代碼? – mikezang