使用此获取输入选择器
Get the input selector using this
我有一组动态生成的输入字段,因此我不能使用 ID。对于每个输入字段,我都有一个 focusout 方法来验证最终用户输入的值。
如果验证失败,我想清除输入的值并将焦点返回到相同的输入。当我尝试使用此关键字时,范围似乎设置为 windows 而不是输入控件。
输入字段截图:
function validate(reg){
debugger;
if(isNaN(reg)==false){
return;
}
else
{
alert("The field should contain number");
$(this).val(""); //clear the value
$(this).focus();
}
}
在上面的代码中,这个关键字似乎不起作用。
将事件传递给您的 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)"/>
另一种方法:
$(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="" />
我有一组动态生成的输入字段,因此我不能使用 ID。对于每个输入字段,我都有一个 focusout 方法来验证最终用户输入的值。
如果验证失败,我想清除输入的值并将焦点返回到相同的输入。当我尝试使用此关键字时,范围似乎设置为 windows 而不是输入控件。
输入字段截图:
function validate(reg){
debugger;
if(isNaN(reg)==false){
return;
}
else
{
alert("The field should contain number");
$(this).val(""); //clear the value
$(this).focus();
}
}
在上面的代码中,这个关键字似乎不起作用。
将事件传递给您的 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)"/>
另一种方法:
$(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="" />