Javascript 验证和聚焦一个元素

Javascript 验证和聚焦一个元素,javascript,asp.net,Javascript,Asp.net,我想验证ASP.TextBox是否可以使用javascript函数只输入整数值。如果用户输入了非整数值,则应显示警告消息并将焦点保持在当前元素上。我使用了以下程序: 在网页的Asp.TextBox元素上: onchange="return isInteger(this);" onblur="return isInteger(this);" 和functions.js文件中的valdating函数 function isInteger(mobj) { var mval = mobj.value;

我想验证ASP.TextBox是否可以使用javascript函数只输入整数值。如果用户输入了非整数值,则应显示警告消息并将焦点保持在当前元素上。我使用了以下程序:

在网页的Asp.TextBox元素上:

onchange="return isInteger(this);" onblur="return isInteger(this);"
和functions.js文件中的valdating函数

function isInteger(mobj) {
var mval = mobj.value;
if (isNaN(parseInt(mval))) {
    alert("Plese Enter a Valid Integer...!");
    mobj.focus();
    return false;
}
 return true; 
}

是否正确,或者是否有正确的方法进行验证。请建议。

是的,这个想法是正确的。这就是验证文本框的方法


或者还有另一种方法在文本框上使用onKeyUp(),检查文本框的值,如果输入不是整数,则返回false。

您可以使用ASP.NETRegularExpressionValidator控件验证文本框的输入值

例如



这个想法是正确的,但只要改变就足够了。onblur是不必要的,因为您不希望每次控件失去焦点(即tab-through或单击)时都进行验证,而不进行任何更改。

onblur
在这里进行验证就足够了

同时使用
onchange
onblur
有时会创建两个警报,即当焦点丢失和
onchange
同时触发时

试试看

如果您单独使用onchange,当您保持文本不变时,只有在第一次失去焦点时,您才会收到警报。例如。。。否则,如果文本框值无效,则必须清除该值


onkeyup
可能是最佳选择,但您可能需要清除文本框值,如…

此问题中没有jQuery。请不要限制无效输入的模糊。请不要将对话框推到用户面前。如果您热衷于编写客户端验证代码,只需显示一条内联错误消息。
<asp:TextBox id="textbox1" runat="server" />
<asp:RegularExpressionValidator
ControlToValidate="textbox1"
ValidationExpression="\d{1,10}"
ErrorMessage="Plese Enter a Valid Integer...!"
runat="server" />