2012-09-24 36 views
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; 
     } 

    } 

回答

2

你会需要传递给你的函数调用元素的引用,所以更改onkeypress这样:

onkeypress="return allowonlynumbers(this);" 

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

function allowonlynumbers(obj) { 

} 

而且你可以使用的逻辑是:

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

非常感谢您的回答,也没有时间检查它并且执行到现在为止,尽管现在我有一个类似jbabey的回答,你是第一个回答,所以我欠你的! ,非常感谢所有回复! – LoneXcoder

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/

+0

thakns为您的种类和通知的答案,你已经描述了整个想法甚至比第一回答,虽然我必须首先标记为正确的,对此感到遗憾,你的也是正确的! – LoneXcoder

+0

再次我想表达我的赞赏,这次在后面的链接“JSFIDDLE”这是一个非常好的!感谢你呢! – LoneXcoder

相关问题