我有一个使用jquery和jquery UI和ajax的asp.net 4.0页面。
问题:页面可能正在显示记录被标记为不可编辑的数据(在代码中,而不是从SQL Server数据库记录状态)。仅供参考:页面将在从服务器加载时标记,而不是基于某些用户输入。
当标记为不可编辑时,我需要对页面执行许多操作。
禁用许多选择和文本输入和按钮。
当用户尝试编辑(或点击)这些控件时,我需要显示警告。
有人可以用最简单的方法来帮助我实现这个目标吗?
我是否只将一个类应用于所有这些控件,然后将jquery事件绑定到该类?
答案 0 :(得分:2)
已停用的表单元素不会触发click
事件,但其父元素仍可能会看到它。您可以挂钩这些字段的容器的click
事件(例如form
),然后查看单击了哪个元素(通过{{1属性,jQuery确保跨浏览器正确设置)。如果它是这些禁用元素之一,您可以发出提醒:
event.target
这仅适用于创建事件并让其传播的浏览器。 Firefox和Opera没有; IE和Chrome可以。
不是禁用表单字段,而是可以考虑将它们设置为$("selector_for_the_form").click(function(event) {
if (event.target.disabled) {
alert("You can't click the " + event.target.name + " field");
}
});
。 Details here。这使事情变得更加可靠(live example)。
答案 1 :(得分:1)
编辑:刚刚意识到帖子的顶部说ASP抱歉:P 但是可能还有其他方法可以使用ASP做同样的事情
您可能需要切换正在使用的任何文本框或输入的只读状态。
如果你使用的是PHP,你可以通过GET传递一个变量,然后使用它来告诉元素只读或甚至禁用。
E.G。
<input type="textbox" name="box01" <?php if ($_GET["disable"]==true) {echo 'readonly="readonly";} ?> />