验证文本框是否首先不读取

时间:2012-09-24 16:06:53

标签: javascript asp.net validation

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

和(非经理)用户的另一种模式 - 将“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;
        }

    }

2 个答案:

答案 0 :(得分:3)

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

onkeypress="return allowonlynumbers(this);"

然后,你的功能必须是这样的:

function allowonlynumbers(obj) {

}

您可以使用的逻辑是:

if (obj.readOnly) {
    // The element is readonly
}

答案 1 :(得分:2)

您应该在javascript(why?)中绑定您的事件处理程序。然后,您将能够使用处理程序内的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/