首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不取消选中选项的情况下禁用复选框?

如何在不取消选中选项的情况下禁用复选框?
EN

Stack Overflow用户
提问于 2013-12-20 11:18:33
回答 6查看 2.7K关注 0票数 0

我有一个选择框。

代码语言:javascript
运行
复制
<select>

    <option> one </option>

    <option> two </option>

    <option> three </option>

 </select>

当我使用attr(“禁用”、“禁用”)禁用它并再次启用它时,先前选择的状态不被保留。有什么办法能留住他们吗?

编辑:我在这里附加一个小提琴手

禁用它之后,当我在其他包装器中附加相同的复选框时,所选的值将不被保留。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-12-20 11:22:59

如果您只想阻止用户修改它,请使其只读,而不是禁用它:

代码语言:javascript
运行
复制
$("#selectbox").attr('readonly', 'readonly')

更新

既然您已经澄清了您的问题与复制select框有关,下面是一个解决方案:

代码语言:javascript
运行
复制
jQuery("select").change(function () {
    jQuery(this).attr("disabled", "disabled");
});

jQuery("button").click(function () {
    jQuery("select").removeAttr("disabled");
    jQuery('.wrapper').append(jQuery('.select-wrapper:first select').clone(true).val(jQuery('.select-wrapper:first select').val()));
});

小提琴

当您只是复制HTML时,您得到的只是DOM元素。HTML中不包括用户交互中对输入元素的更改。因此,此解决方案使用.clone()复制select元素,然后将原始复选框的当前值复制到克隆中。

票数 1
EN

Stack Overflow用户

发布于 2013-12-20 11:21:51

一种方法是将当前值保存在临时字段/或临时JS变量中,当启用它时,将其放回。

代码语言:javascript
运行
复制
var t1 = '';

//at disable
t1 = document.getElementById('select_1').value;

//at enable
document.getElementById('select_1').value = t1;

如果有多个复选框,则可以将它们保存在数组中:

代码语言:javascript
运行
复制
var t2 = [];

或者,您可以为每个复选框使用一个掩码层:

代码语言:javascript
运行
复制
<div id="mask_select_1" style="display:none; position:absolute; z-index:100;
width:80px; height:60px; background:#000000;
filter:alpha(opacity=00);
-moz-opacity:0.00;
opacity: 0.00;">&nbsp;</div>

根据您的可见大小设置宽度和高度,而不是禁用,只需简单地使此掩码div display:inline。因此,当您想要启用时,将其设置为display:none

为了您的方便,您还需要照顾div id来匹配选择框id .

票数 1
EN

Stack Overflow用户

发布于 2013-12-20 11:27:00

保存状态并将其设置为:

代码语言:javascript
运行
复制
$('#selectId').data('state', $('#selectId').val()).prop('disabled', true);
//sowhere else in the code 
$('#selectId').prop('disabled', false).val($('#selectId').data('state'));

这样你就不用处理变量了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20702480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档