jquery在点击时禁用控件和警报

时间:2011-05-01 13:47:17

标签: jquery

我有一个使用jquery和jquery UI和ajax的asp.net 4.0页面。

问题:页面可能正在显示记录被标记为不可编辑的数据(在代码中,而不是从SQL Server数据库记录状态)。仅供参考:页面将在从服务器加载时标记,而不是基于某些用户输入。

当标记为不可编辑时,我需要对页面执行许多操作。

禁用许多选择和文本输入和按钮。

当用户尝试编辑(或点击)这些控件时,我需要显示警告。

有人可以用最简单的方法来帮助我实现这个目标吗?

我是否只将一个类应用于所有这些控件,然后将jquery事件绑定到该类?

2 个答案:

答案 0 :(得分:2)

已停用的表单元素不会触发click事件,但其元素仍可能会看到它。您可以挂钩这些字段的容器click事件(例如form),然后查看单击了哪个元素(通过{{1属性,jQuery确保跨浏览器正确设置)。如果它是这些禁用元素之一,您可以发出提醒:

event.target

Live example

这仅适用于创建事件并让其传播的浏览器。 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";} ?> />