Javascript 如果验证失败,则焦点应保持不变
在下面的代码中,我有2个文本框。当我输入一个值时,如果它是成功的,它将移动到下一个文本框,如果它是失败的,它将发出警报,而不会移动到另一个文本框。如果它是失败的,我的目标应保持在同一个文本框上Javascript 如果验证失败,则焦点应保持不变,javascript,Javascript,在下面的代码中,我有2个文本框。当我输入一个值时,如果它是成功的,它将移动到下一个文本框,如果它是失败的,它将发出警报,而不会移动到另一个文本框。如果它是失败的,我的目标应保持在同一个文本框上 function ValidateRegExp(txtInput, REGEXP) { var mySplitResult = new Array(); mySplitResult = REGEXP.split("~~"); var iReturn = 0
function ValidateRegExp(txtInput, REGEXP) {
var mySplitResult = new Array();
mySplitResult = REGEXP.split("~~");
var iReturn = 0;
for (i = 0; i < mySplitResult.length - 1; i++) {
var re = new RegExp(mySplitResult[i]);
if (!txtInput.match(re)) {
iReturn = iReturn + 1;
}
}
if (iReturn > 0) {
alert("Failed...");//focus should remain on same textbox
}
else {
alert("Success...");
}
}
函数ValidateRegExp(txtInput,REGEXP){
var mySplitResult=新数组();
mySplitResult=REGEXP.split(“~~”);
var-iReturn=0;
对于(i=0;i0){
警报(“失败…”);//焦点应保持在同一文本框上
}
否则{
警惕(“成功…”);
}
}
document.getElementById('textInput').focus()代码>可以
如果在您的案例中传递textInput的引用,请尝试textInput.focus()代码>
您只向ValidateRegExp函数传递值,而不是传递元素的引用。将事件绑定更改为以下内容:
txtField.Attributes.Add("onblur", "javascript:ValidateRegExp(document.getElementById('" + txtField.ClientID + "'), '" + hidRegExp.Value + "');");
将js代码更改为
function ValidateRegExp(txtInput, REGEXP) {
var textValue = txtInput.value;
var mySplitResult = new Array();
mySplitResult = REGEXP.split("~~");
var iReturn = 0;
for (i = 0; i < mySplitResult.length - 1; i++) {
var re = new RegExp(mySplitResult[i]);
if (!textValue.match(re)) {
iReturn = iReturn + 1;
}
}
if (iReturn > 0) {
//alert("Failed...");//focus should remain on same textbox
textInput.focus();
}
else {
alert("Success...");
}
}
函数ValidateRegExp(txtInput,REGEXP){
var textValue=txtInput.value;
var mySplitResult=新数组();
mySplitResult=REGEXP.split(“~~”);
var-iReturn=0;
对于(i=0;i0){
//警报(“失败…”);//焦点应保持在同一文本框上
textInput.focus();
}
否则{
警惕(“成功…”);
}
}
使用foucs()
方法执行此操作
if (iReturn > 0) {
alert("Failed...");//focus should remain on same textbox
txtInput.focus();
}
您需要使用focus()在textInput
参考上选择code>
JavaScript:
此处演示按tab键时,焦点移动到另一个文本框这是焦点的行为,如果按tab键,它将聚焦下一个元素。问题是什么?如果失败,则不应移动到另一个文本框如何绑定元素的函数ValidateRegExp(),onblur
?使用此txtField.Attributes.Add(“onblur”,“javascript:ValidateRegExp(document.getElementById(“+txtField.ClientID+”).value“,+hidRegExp.value+”;”;然后在文本框OnBlur事件中调用验证函数
function ValidateRegExp(txtInput, REGEXP) {
var mySplitResult = [];
mySplitResult = REGEXP.split("~~");
var iReturn = 0;
for (var i = 0; i < mySplitResult.length; i++) {
var re = new RegExp(mySplitResult[i]);
if (!txtInput.value.match(re)) {
iReturn = iReturn + 1;
}
}
if (iReturn > 0) {
alert("Failed...");//focus should remain on same textbox
txtInput.focus();
}
else {
alert("Success...");
}
}
txtField.Attributes.Add("onblur", "javascript:ValidateRegExp(document.getElementById('" + txtField.ClientID + "'), '" + hidRegExp.Value + "');");