2013-08-16 57 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); 

乾杯

相關問題