防止对所有输入执行默认操作

时间:2013-08-16 06:28:34

标签: javascript jquery html5

我正在创建一个HTML表单设计器 - 用户可以将输入元素放在页面上的网格中,然后将其保存到数据库中,其他用户可以使用完成的表单。

现在所有这些实际上已经有效,但我遇到了一个相当微不足道但却很烦人的问题 - 因为我需要在代码中使用实际的输入元素,以便在设计过程中正确显示布局,用户可以输入文本字段,更改复选框等的值,但实际上没有保存,所以这很混乱。现在,表单设计器允许启用/禁用元素,因此禁用页面上的所有元素会更糟。

我的问题是:你能以一种简单的方式完全禁用所有输入元素的默认动作(在点击文本字段后写文本,检查/取消选中复选框,那种东西)吗?到目前为止,我已尝试使用jQuery的preventDefault绑定各种事件,但没有成功。我知道我可以对按键等内容作出反应并撤消它们,但这看起来似乎不必要地复杂。

3 个答案:

答案 0 :(得分:2)

尝试

$("input").on('click',function(e){
     e.preventDefault();
});

您可以放置​​change代替click收音机和复选框

答案 1 :(得分:1)

根据您拥有的输入类型,您可以提供readonly属性。直接在html上或通过jQuery $("input").prop("readonly",true);

答案 2 :(得分:0)

考虑您的表单有id:

<form id="test">

</form>

禁用所有输入:

$("#test :input").attr("disabled", true);

匹配所有输入,textarea,select和按钮元素。

如果您只想要元素:

$("#test input").attr("disabled", true);

干杯