2017-09-06 52 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="" />

相关问题