【问题标题】:validating textbox checking if it isn't readonly first验证文本框是否首先不是只读的
【发布时间】:2012-09-24 16:06:53
【问题描述】:

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

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

    }

【问题讨论】:

    标签: javascript asp.net validation


    【解决方案1】:

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

    onkeypress="return allowonlynumbers(this);"
    

    那么,你的函数需要是这样的:

    function allowonlynumbers(obj) {
    
    }
    

    你可以使用的逻辑是:

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

    【讨论】:

    • 非常感谢您的回答,直到现在才有时间检查并实施,虽然到目前为止我有一个类似 jbabey 的回答,您是第一个回答的,所以我欠你的! ,非常感谢大家的回复!
    【解决方案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/

    【讨论】:

    • 感谢您的好意和消息灵通的回答,您对整个想法的描述甚至比第一个答案还远,尽管我必须首先将其标记为正确的,对此感到抱歉,您的回答是正确的一个也是!!
    • 再次我想在后面的链接“JSFIDDLE”上表达我的感谢,这是一个非常好的链接!也谢谢你!
    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 2013-03-02
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多