Javascript 如果验证失败,则焦点应保持不变

Javascript 如果验证失败,则焦点应保持不变,javascript,Javascript,在下面的代码中,我有2个文本框。当我输入一个值时,如果它是成功的,它将移动到下一个文本框,如果它是失败的,它将发出警报,而不会移动到另一个文本框。如果它是失败的,我的目标应保持在同一个文本框上 function ValidateRegExp(txtInput, REGEXP) { var mySplitResult = new Array(); mySplitResult = REGEXP.split("~~"); var iReturn = 0

在下面的代码中,我有2个文本框。当我输入一个值时,如果它是成功的,它将移动到下一个文本框,如果它是失败的,它将发出警报,而不会移动到另一个文本框。如果它是失败的,我的目标应保持在同一个文本框上

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 + "');");