如何限制下拉列表選項更改而不禁用該下拉列表。
表示我無法更改該選項,並且該下拉列表不應該是隻讀的。
我的問題是我的服務器沒有閱讀障礙元素如何限制下拉列表更改而不禁用它
回答
Here's my bid
jQuery的
var lastSel = $('#foo').val();
$('#foo').change(function(){
var $select = $(this), $status = $('#status');
var $selOpt = $select.find('option:selected');
if (!$selOpt.hasClass('disabled')){
lastSel = $selOpt.index();
$status.text('Selection changed to ' + $selOpt.val() + ' [' + lastSel + ']');
}else{
$selOpt.removeAttr('selected');
$select.find('option:eq('+lastSel+')').attr('selected',true);
$status.text('Invalid selection, reverting to ' + lastSel);
}
});
HTML
<select id="foo">
<option value="">Please select one</option>
<option value="a">Option A</option>
<option value="b">Option B</option>
<option value="c" class="disabled">Option C</option>
<option value="d">Option D</option>
<option value="e">Option E</option>
<option value="f" class="disabled">Option F</option>
<option value="g">Option G</option>
<option value="h">Option H</option>
<option value="i" class="disabled">Option I</option>
</select>
<p id="status"></p>
插件版本
(function($){
$.fn.extend({
restrictedSelect: function(disabledClass){
disabledClass = disabledClass || 'disabled';
return this.each(function(i,e){
var $s = $(e);
// store the current selection. This is also used as a fall-back
// value when the user selects something invalid.
$s.data('currentSelection',$s.find('option:selected').index());
$s.change(function(){
var $cs = $s.find('option:selected');
if ($cs.hasClass(disabledClass)){
$cs.removeAttr('selected');
$s.find('option:eq('+$s.data('currentSelection')+')').attr('selected',true);
}else{
$s.data('currentSelection',$cs.index());
}
});
});
}
});
})(jQuery);
$('select').restrictedSelect('invalid-select-option');
這實際上很酷,但爲什麼要禁用它,而不是從菜單中刪除它呢?爲什麼讓用戶選擇一些東西來告訴他們他們不應該選擇它? – AlienWebguy
@AlienWebguy:你也可以這樣做。同樣,你可以設置'.disabled {display:none; }' –
沒錯,但你的jquery沒有任何用處:) – AlienWebguy
$('#my_select').change(function(event){
$(this).val(this.defaultSelected);
});
如何設置以前的值.... – Reddy
您可以將其重寫爲任何您想要的值。如果先前的值存儲在某個變量的某個變量中,只需在'$(this).val( - here - )'中提供該變量,例如:http://jsbin.com/ulufer/edit – AlienWebguy
你可以這樣做:
//save the value selected when you load the page
var default = $('#yourselect option:selected').val();
//reset the value when the select change
$('#yourselect').change(function(event){
$(this).val(default);
});
試試這個
<select id="selectId" data-default="1">
<option value="0">0</option>
<option value="1">1</option>
...
</select>
$('#selectId').change(function(){
$(this).val($(this).data("default"));
});
http:// www。 w3schools.com/tags/att_option_selected.asp – AlienWebguy
- 1. 如何禁用ajax引起的下拉列表的值更改?
- 2. 如何更改TComboBox的下拉列表?
- 3. 如何禁用或更改Linux下的GPU的超時限制?
- 4. HTML下拉列表更改
- 5. 下拉列表已更改
- 6. 更改下拉列表值
- 7. 如何在html中選擇一些限制後禁用下拉列表元素
- 8. 禁用下拉列表
- 9. 禁用下拉列表
- 10. JavaScript - 在更改下拉列表索引時禁用文本框
- 11. Rails f.select試圖禁用更改下拉列表
- 12. HTML下拉列表而不更改選定的值
- 13. 如何在下拉列表更改後預製Jquery函數?
- 14. 如何在某些條件下限制Perforce更改列表?
- 15. 如何更改下拉列表的寬度在asp.net中下拉列表控件
- 16. 如何更改關於另一個下拉列表的下拉列表
- 17. 如何更改另一個下拉列表的SelectedIndexChange上的下拉列表?
- 18. 如何根據第二個下拉列表禁用下拉列表
- 19. 使用php-ajax更新另一個下拉列表的更改下拉列表
- 20. Odoo。有限制的下拉列表
- 21. 限制與Chosen.js下拉列表
- 22. 限制下拉列表的範圍
- 23. 如何根據下拉列表進行數據列表更改?
- 24. 級聯下拉列表 - 如何暫時禁用更改事件在下拉操作選項
- 25. 對下拉列表中的列表是否有任何限制
- 26. 更改禁用選擇(下拉列表)基於另一個選擇(下拉列表)值
- 27. svn更改列表:如何將操作限制爲「默認」更改列表?
- 28. 爲什麼eclipse更改權限以及如何禁用它?
- 29. 權限更改/禁用如何?
- 30. 如何使用下拉列表更改href鏈接
你要什麼改變?它的值? – Marthin
您將更多的努力投入到您的問題中,您將收到的答案的質量和數量都會更好。這是真的很不清楚你想要做什麼。 –
請澄清問題。這令你感到困惑。也許使用一些代碼來解釋。 –