我有一个有两种模式的表格 一个允许编辑(文本框的值)
和(非经理)用户的另一种模式 - 将“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;
}
}
答案 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;
}
}
};