2013-08-16 42 views
0

我正在创建一个HTML表单设计器 - 用户可以将输入元素放置在页面中的网格中,然后将这些输入元素保存到数据库中,并且完成的表单可供其他用户使用。防止对所有输入的默认操作

现在所有这些实际上已经工作,但我已经达到了一个相当平凡但令人讨厌的问题 - 因为我需要在代码中使用实际的输入元素,以便布局在设计期间正确显示,用户可以键入文本字段,更改复选框等的值,但实际上没有保存,所以它很混乱。现在,表单设计器允许启用/禁用元素,因此禁用页面上的所有元素将更加糟糕。

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

+0

你有什么样的输入?只读可能是一个选项? – Sergio

+0

为输入提供'disabled =“disabled”'属性或使用jQuery'$('input')。prop('disabled',true);'。您也可以使用只读属性。 – MisterBla

+0

@Sergio:哦。我想我找不到答案,因为很少有人需要这样的事情,并不是因为我是一个完整的工具。哦,把它作为答案发布,这样我可以给你你的代表,谢谢。 – Fenixp

回答

1

取决于你有什么样的投入,你可以给的readonly属性。直接在html上或通过jQuery $("input").prop("readonly",true);

2

尝试像

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

您可以将change代替click单选和复选框

0

考虑您的形式有ID:

<form id="test"> 

</form> 

要禁用所有输入:

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

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

如果你只想要的元素:

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

干杯

相关问题