2013-07-12 26 views
0

我有一些可在同一頁面中編輯的窗體。每個文本框的第一屬性是隻讀的,當我按下編輯按鈕,就會變成可編輯的,使用此語法保存更改後啓用只讀文本框

$('input[readonly="readonly"]').removeAttr("readonly").prop("enabled",true); 

當我按下保存按鈕,我希望它只讀再次成爲。我試圖將其更改爲

$('input[readonly="readonly"]').attr("readonly").prop("disable",true); 
    and 
$('input[readonly="readonly"]').attr("readonly").prop("readonly",true); 

但它不會再次只讀轉變成。

有沒有適當的方法來做到這一點?

回答

0

當您按下編輯按鈕時,只讀屬性被刪除。

so,$('input[readonly="readonly"]')不匹配任何內容。


例如,

$('input[type="text"]').attr("readonly", "readonly");

將設置文本框都以只讀。

+0

嗨@飛洋蔥,那麼如何正確的方法來做到這一點?謝謝 – randytan

+0

@randytan如果你想指定文本框。你需要設置類,名稱或ID來定位文本框。 –

+0

檢查我的答案,也許你想爲你的文本框添加一個ID並使用它來選擇。選擇選擇器取決於你的HTML – Mzn

0

需要

$('<your-selector>').prop("disable",true).attr("readonly", "readonly"); 

,因爲調用.attr("readonly")剛剛返回屬性readonly的價值,在這裏你需要設置readonly屬性值,你需要兩個參數傳遞給.attr()

+0

你是什麼意思的選擇?它只是輸入?因爲有很多輸入ID。所以我只需要放置「輸入」?謝謝 – randytan

+0

@randytan如何識別您的目標輸入元素,它有一個名稱/編號/類 –

+0

是的,它有ID和名稱。但每種輸入類型都有不同的ID和名稱。有什麼辦法讓它一擊殺死? :D – randytan

0

$('input[readonly="readonly"]').attr("readonly").prop("disable",true);,您正在使用的選擇器正在查找已經讀取的輸入。我只是不認爲您想要進行只讀輸入readOnly。

給它一個ID或找到另一種方法來選擇它然後做$("#myInput").attr("disabled", "disabled")。在鉻上測試。