0

我正在通过正则表达式在焦点输出上验证 javascript 中的一些 .net 文本框:

ValidationExpression="[0-9]+(\.[0-9][0-9]?)?" 

对于所有文本框。

如果 isValidate,按钮启用 = true 否则按钮启用 = false

但我的代码不起作用:

<dx:ASPxTextBox ID="tbxAcPart" runat="server" Width="95px" ClientIDMode="Static">
    <ClientSideEvents Validation="function(s, e) {ValidTextBox(s);}" />
    <ValidationSettings ErrorDisplayMode="Text" EnableCustomValidation="true"  SetFocusOnError="true" ValidationGroup="Apply" Display="Dynamic" ErrorTextPosition="Bottom" >
     <ErrorFrameStyle Font-Size="Smaller"/>
     <RegularExpression ValidationExpression="[0-9]+(\.[0-9][0-9]?)?" ErrorText="Numeric   !" /> 
     <RequiredField IsRequired="true" />
    </ValidationSettings>
</dx:ASPxTextBox>


<dx:ASPxTextBox ID="tbxMpPart" runat="server" Width="95px" ClientIDMode="Static">
    <ClientSideEvents Validation="function(s, e) {ValidTextBox(s);}" />
    <ValidationSettings ErrorDisplayMode="Text" EnableCustomValidation="true"  SetFocusOnError="true" ValidationGroup="Apply" Display="Dynamic" ErrorTextPosition="Bottom" >
         <ErrorFrameStyle Font-Size="Smaller"/>
         <RegularExpression ValidationExpression="[0-9]+(\.[0-9][0-9]?)?" ErrorText="Numeric   !" /> 
         <RequiredField IsRequired="true" />
    </ValidationSettings>
</dx:ASPxTextBox>
function ValidTextBox(s) {
    if (s.GetIsValid()) {
        decimalErr.SetText('');
    }
    else {
        decimalErr.SetText(s.GetErrorText());
        var t = document.getElementsById("btApply");
        t.disabled = true;
        this.focus();
    }
}
4

1 回答 1

0

如果您使用服务器控制,则需要使用 ctl.ClientID

function ValidTextBox(s) {

        if (s.GetIsValid()) {
            decimalErr.SetText('');
        }
        else {
            decimalErr.SetText(s.GetErrorText());
            var t = document.getElementById("<%= btApply.ClientID %>");
            t.disabled = true;
            this.focus
        }
}
于 2013-07-01T07:48:14.643 回答