我有一些功能來驗證這樣的一些輸入字段:誤差,如果,如果別人在Javascript
function validateName() {
var inputName = document.getElementById('name');
var pesanError ='';
if (inputName.value ===""){
pesanError = 'Name can't be empty'
tambahError('name',pesanError)
}else if(inputName.value !="" && inputName.value.length < 3){
remove('name');
pesanError = 'Name is too short'
tambahError('name',pesanError)
}else{
remove('name')
}
}
我用添加這樣的事件:
var inputName = document.getElementById('name');
inputName.addEventListener("blur", validateName, true);
以及它做工精細,當它清空時顯示「名稱不能爲空」,當有值但長度小於3時,它會顯示「名稱太短」,但問題出在它有值並顯示「名稱太短」然後該字段再次沒有值,它仍然顯示「名稱太短」。所以我的問題我怎麼能讓我的功能,所以它會顯示「名稱不能爲空」時,值再次變成無價值。
這裏的刪除功能和tambahError功能:
function remove(id) {
var element = id + "Error";
var inputName = document.getElementById(element);
if (inputName !== undefined){
inputName.remove();
}
}
function tambahError(kolom,pesan) {
if (document.getElementById(kolom+"Error")== undefined){
var inputName = document.getElementById(kolom);
var h = document.createElement("span");
h.id = kolom+"Error";
var t = document.createTextNode(pesan);
h.appendChild(t);
h.className='error';
insertAfter(h, inputName);
}
}
爲什麼名字太短時少於3?我知道很多有兩個字母名字的人 – Pete
我們不知道你的'tambahError'函數做了什麼 - 可能它只是向目標元素髮出錯誤消息,而不是替換它們。 – CBroe
你可以發佈'remove'和'tambahError'函數代碼!這可能有助於 –