2017-09-06 87 views
1

我已被動態生成的輸入字段,因此我不能使用的ID。對於每個輸入字段的我有這驗證由最終用戶輸入的值的事件的內容的方法。 如果驗證失敗,我想清除輸入的值,並帶回焦點到相同的輸入。當我試圖使用這個關鍵字範圍似乎被設置爲Windows而不是輸入控件。使用獲取輸入選擇這個

輸入字段截圖:

Input fields screenshot

function validate(reg){ 
debugger; 
if(isNaN(reg)==false){ 
    return; 
} 
else 
{ 
    alert("The field should contain number"); 
    $(this).val(""); //clear the value 
    $(this).focus(); 
} 
} 

在上面的代碼,這個關鍵字似乎並沒有工作。

+0

從那裏是U調用驗證? – jANVI

+0

從輸入字段,onfocusout在事件將調用此方法 –

+0

請出示確切的代碼調用/安裝監聽器,有失敗的根源。 – Teemu

回答

0

傳遞事件validate(),然後你可以使用event.target目標輸入元素。

function validate(reg, e){ 
 
debugger; 
 
if(isNaN(reg)==false){ 
 
    return; 
 
} 
 
else 
 
{ 
 
    alert("The field should contain number"); 
 
    $(e.target).val(""); //clear the value 
 
    $(e.target).focus(); 
 
} 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input onfocusout="validate(this.value, event)"/> 
 
<input onfocusout="validate(this.value, event)"/> 
 
<input onfocusout="validate(this.value, event)"/>

這是你試圖完成什麼?

+0

謝謝,這做到了。就像泰姆建議的那樣,我沒有通過賽事。 –

0

另一種方法:

$(document).ready(function() { 
 
    var inputs = document.querySelectorAll("input[type=text]"); 
 
    for (i = 0; i < inputs.length; i++) 
 
     inputs[i].addEventListener("focusout", function() { validate(this); }); 
 
}); 
 

 
function validate(reg) { 
 
    if (isNaN($(reg).val()) == false) { 
 
     return; 
 
    } 
 
    else { 
 
     alert("The field should contain number"); 
 
     $(reg).val(""); //clear the value 
 
     $(reg).focus(); 
 
    } 
 
}
<input type="text" value="" /> 
 
<input type="text" value="" /> 
 
<input type="text" value="" /> 
 
<input type="text" value="" />