1

我有一个具有两种模式的表单,一种允许编辑(文本框的值)

以及(非经理)用户的另一种模式 - 将“READONLY”添加到 TextBox 标记后面的代码。

因此,对于只读“模式”,文本框中根本不接受任何输入

我的问题是如何根据文本框的“READONLY”属性执行验证方法?

strRo = "READONLY" 在一个条件下

<asp:TextBox ID="txtNumbers" runat="server" <%=strRo %> onkeypress="return allowonlynumbers();" />

javascript函数

   function allowonlynumbers() {
        if (event.keyCode >= 48 && event.keyCode <= 57) {
            return true;
            }

        else {
            alert('Only numbers can be entered');
             return false;
        }

    }
4

2 回答 2

3

您需要在函数调用中传递对元素的引用,因此将其更改onkeypress为:

onkeypress="return allowonlynumbers(this);"

然后,您的功能需要是这样的:

function allowonlynumbers(obj) {

}

您可以使用的逻辑是:

if (obj.readOnly) {
    // The element is readonly
}
于 2012-09-24T16:09:51.680 回答
2

您应该在 javascript 中绑定您的事件处理程序(为什么?)。然后您将能够使用this处理程序内部的运算符来引用文本框,您可以检查以下readOnly属性:

document.getElementById('test').onkeypress = function () {
    if (!this.readOnly) {
        if (event.keyCode >= 48 && event.keyCode <= 57) {
            return true;
        } else {
            alert('Only numbers can be entered');
            return false;
        }
    }
};​

http://jsfiddle.net/FedsQ/

于 2012-09-24T17:20:52.930 回答