2013-03-07 51 views
0

我有一個表格,我需要禁用某些用戶的字段,而其他人可以填寫和編輯它們,所以我有如下:提交表單禁用和只讀字段 - 什麼都沒有雖然

$('.adminOnlyField').attr("readonly","true"); 
$('.adminOnlyField').prop('disabled', 'disabled'); 

因此,當提交表單時,沒有任何東西通過控制器來處理更改。例如$ _POST是空的($ this-> request-> cakePHP中的數據),只要我刪除這些行數據再次提交。

任何想法如何解決這個問題?我正在使用CakePHP,但我認爲這不重要。

感謝

+0

是否有必要顯示這些字段,如果用戶不能改變任何東西?爲什麼不將它們移除給不應修改它們的用戶? – kaklon 2013-03-07 08:53:46

+0

是的,這是一個要求顯示字段,因爲無法編輯字段的用戶仍然需要查看錶單的詳細信息/進度。謝謝 – sluggerdog 2013-03-07 20:47:50

回答

0

.prop()被這樣使用:

$('.adminOnlyField').prop('disabled', true); 

但我不明白爲什麼你disabling是它並使它readonly。如果您的輸入是disabledreadonly那麼您將如何手動輸入值。

+0

我有.prop('disabled',true)設置下拉菜單,看起來如果我只有.attr(「readonly」,「true」);下拉菜單仍然可以選擇。 – sluggerdog 2013-03-07 07:03:35

0

如果您禁用了這些字段,那麼這些字段將不會與表單一起發佈。如果您只想限制它們進行編輯,只需將它們標記爲只讀即可。只需添加以下行並刪除禁用即可。

$('.adminOnlyField').attr("readonly","true"); 

您應該保留禁用選擇元素,也具有相同的名稱和值添加其他 隱藏輸入。

如果您重新啓用SELECT,則應將其值複製到onchange事件中隱藏的 輸入中。

+0

這似乎不適用於下拉菜單/選擇。 – sluggerdog 2013-03-07 07:06:19