0

这是我的问题,我创建了一个文本框来检查美国手机号码,并在 JS 中创建了一个仅检查数字的函数。问题是在我输入错误的数字之后,我想清除文本框,JS 中的函数不允许我这样做。

这是我的代码:

function NumbersOnly(sender, args) {
    var text = sender.get_value() + args.get_keyCharacter();
    if (!text.match('^[0-9]+$') && text != '\b' && text != '(' && text != ')' && text != '-') {
        args.set_cancel(true);
    }
}

细胞:

            </td>
            <td style="text-align: left">
            <telerik:RadTextBox ID="txtPhone" runat="server" MaxLength="25" Width="200px"><ClientEvents OnKeyPress="NumbersOnly"></ClientEvents></telerik:RadTextBox>                
            <asp:RegularExpressionValidator runat="server" ID="revPhone"
                            ControlToValidate="txtPhone"
                            Display="None"
                            ValidationExpression="^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$"
                            ValidationGroup="validateEditUser"
                            EnableClientScript="false"
                            ErrorMessage="- Please enter a valid phone number:(ex.) <b>(xxx-xxx-xxxx)</b></br>" />
        </tr>

谢谢

4

2 回答 2

0

如果您可以访问 jQuery,则可以使用$('#txtPhone').val('');来清除您的文本框。这也有助于解决任何跨浏览器的不一致问题。

这是假设实际输入元素的 ID 是txtPhone而不是 webforms 生成的错误 ID。如果我没记错的话,RadTextBox 控件有一个CssClass属性,它允许您为渲染的输入字段设置一个 CSS 类,您也可以使用它。

于 2013-11-01T15:49:42.543 回答
0

只需this.value=''在函数中设置清除其值即可。

或者在你的情况下sender.set_value('')也应该工作

于 2013-10-28T19:38:49.417 回答