Javascript验证onblur
我已经为两个文本框编写了两次相同的javascript,但它为一个文本框运行了两个脚本,我需要编写一次,并为更多文本框调用相同的脚本Javascript验证onblur,javascript,Javascript,我已经为两个文本框编写了两次相同的javascript,但它为一个文本框运行了两个脚本,我需要编写一次,并为更多文本框调用相同的脚本 function checkalphabets() { var pattern = /^[a-zA-Z\s]+$/; if (!pattern.test(myTextBox.value)) { modal({ type: 'warning', title: 'Warning',
function checkalphabets() {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test(myTextBox.value)) {
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed!',
center: false,
callback: function(){ $("#myTextBox").focus();}
});
exit;
return false;
}
return true;
}
function checkalphabets1() {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test(TextBox1.value)) {
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed!',
center: false,
callback: function(){ $("#TextBox1").focus();}
});
exit;
return false;
}
return true;
}
$('.modal-btn').click(function() {
$('#modal-window').hide();
});
以下是您可以将要检查的元素作为函数的参数传递的:
function checkalphabets($el) {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test($el.val())) {
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed!',
center: false,
callback: function(){ $el.focus();}
});
return false;
}
return true;
}
调用时传递元素,并对元素进行检查
checkalphabets($("#TextBox1"));
在代码中,textbox1和mytextbox未定义。将元素传递给函数以定义它们:
function checkalphabets(myinput) {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test(myinput.value)) {
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed!',
center: false,
callback: function(){ $(myinput).focus();}
});
exit;
return false;
}
return true;
}
$('.modal-btn').click(function() {
$('#modal-window').hide();
});
此外,我建议使用onkeyup而不是onblur在每个字符后进行检查:
<input name="myTextBox" type="text" id="myTextBox" onkeyup="checkalphabets(this)" />
<input name="TextBox1" type="text" id="TextBox1" onkeyup="checkalphabets(this)" />
另外,最好在警告后减去不允许的字符。您是否可以考虑将此值作为输入传递给Javascript中的函数并从该变量中提取值,如下所述 HTML:
像wise一样,您可以使用相同的方法处理任意数量的文本框 在尝试提取它们的值之前,您应该定义myTextBox和TestBox1。不,它不起作用。两个文本框都是同时验证的。我在JSFIDLE中运行相同的代码,我可以看到该方法仅在模糊该特定文本框时触发一次。但是,如果我们从一个文本框1移动到另一个文本框2。。将触发textbox1的Onblur事件,该事件将显示模式。。。在模型警报中单击“确定”,textbox2的“模糊”事件将被调用。。。这就是你所说的问题吗?提到asp.net是从哪里来的?请参考用户提供的Fiddle链接!你的小提琴有语法错误。您需要在内联onblur代码中使用单引号。请同时选中两个文本框
<form method="post" action="test.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJODIwMTY2MjU3ZGQVs14nJwqB/iIms8CsXW3SCzs22w==" />
</div>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="75BBA7D6" />
</div>
<div>
<input name="myTextBox" type="text" id="myTextBox" onblur="checkalphabets(this)" />
<input name="TextBox1" type="text" id="TextBox1" onblur="checkalphabets(this)" />
</div>
</form>
function checkalphabets(thisValue) {
var pattern = /^[a-zA-Z\s]+$/;
if (!pattern.test(thisValue.value)) {
modal({
type: 'warning',
title: 'Warning',
text: 'Only Alphabets allowed t1 & t2!',
center: false,
callback: function(){ $(thisValue).focus();}
});
exit;
return false;
}
return true;
}
$('.modal-btn').click(function() {
$('#modal-window').hide();
});