2013-01-03 52 views
0

我想验证一个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; 
} 

它是正确的,或者是有什么正确的方法做验证。请建议。

+0

有一个在这个问题上没有jQuery的。 – jbabey

+0

请不要限制无效输入模糊。请不要在用户的脸上推入对话框。如果您倾向于编写客户端验证,只需显示内联错误消息。 –

回答

0

您可以使用ASP.NET RegularExpressionValidator用于验证文本框输入值的控件。

例如,

<asp:TextBox id="textbox1" runat="server" /> 
<asp:RegularExpressionValidator 
ControlToValidate="textbox1" 
ValidationExpression="\d{1,10}" 
ErrorMessage="Plese Enter a Valid Integer...!" 
runat="server" /> 
0

这个想法是正确的,但onchange就足够了。 onblur并不是必需的,因为每次控制系统失去焦点时(例如,选项卡通过或单击),您都不想验证而没有任何更改。

0

onblur就足够了这里验证..

使用onchangeonblur在一起将创造有时即两个警报丢失焦点时和onchange火灾在一起......

尝试here ...

如果您单独使用onchange,只有在第一次保持文本不变时您失去焦点时才会收到警报,如here ...或者如果文本框无效,您必须清除文本框的值...

onkeyup可以是一个最好的选择,但仍可能需要像here清晰的文本框的值...