我在複雜的訂單表單上有一個選擇框(對於客戶字段),當用戶開始向訂單添加行時,他們不應該被允許更改客戶選擇框(除非所有行都被刪除)。鎖定HTML選擇元素,允許在提交時發送值
我的直接想法是,我可以使用禁用的屬性,但是當禁用該框時,選定的值不再傳遞給目標。
前一個問題出現時,其他開發人員之一通過循環遍歷所有選項並禁用除選定的選項以外的所有選項來解決此問題,並且確實已將該值傳遞給目標,我們一直在使用。但是現在我正在尋找一個合適的解決方案,我不想循環所有選項,因爲數據正在擴展,並且開始引入性能問題。
我不希望在按下提交按鈕時啓用此/所有元素。
如何鎖定輸入,同時保持選定的選項並將該值傳遞給目標腳本?如果可能的話,我寧願使用非JavaScript解決方案,但如果需要,我們運行jQuery 1.4.2以便可以使用。
編輯
我試圖使用只讀屬性,但收效甚微,這裏是我使用的jQuery代碼:
$('.abc').each(function(element) {
$(this).attr('readonly','readonly');
});
當檢查與Firebug的元素只讀屬性有已設置,但我仍然可以更改選擇框中的值?!
成千上萬的選擇不遠處;-),可用性不是問題,因爲每個項目都有一個唯一的代碼,用戶將知道,選擇框和翻轉(在大量的用戶測試後)似乎爲我們工作。 – 2010-04-08 13:50:15
爲了公平起見,我猜jQuery UI自動完成可能是一個更好的選擇,我認爲這使用了一個文本框,因此可以只讀/禁用:) – 2010-04-08 13:51:40
您的解決方案(儘管與我的原創相同)似乎仍然是最佳選擇。我不喜歡在這個階段使用隱藏字段。如果給出更好的解決方案,我的決定可能會改變:-) – 2010-04-08 13:54:25