首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让html <select>元素看起来像是“禁用的”,但却传递了值?

如何让html <select>元素看起来像是“禁用的”,但却传递了值?
EN

Stack Overflow用户
提问于 2012-10-07 22:25:53
回答 8查看 109.2K关注 0票数 42

当我禁用

代码语言:javascript
复制
<select name="sel" disabled>
    <option>123</option>
</select>

元素,它不会传递它的变量。

怎么做才能让它看起来像是被禁用了,但却处于“正常”状态?

这是因为我有一个“选择”列表,有时其中一些只有一个值,所以用户应该知道它只有一个值,而不是单击它。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-10-07 22:43:27

您可以根据需要保持禁用状态,然后在提交表单之前删除disabled属性。

代码语言:javascript
复制
$('#myForm').submit(function() {
    $('select').removeAttr('disabled');
});

请注意,如果您依赖此方法,则还需要以编程方式禁用它,因为如果JS被禁用或不受支持,您将使用disabled select。

代码语言:javascript
复制
$(document).ready(function() {
    $('select').attr('disabled', 'disabled');
});
票数 57
EN

Stack Overflow用户

发布于 2013-03-20 10:50:39

代码语言:javascript
复制
<select id="test" name="sel">
  <option disabled>1</option>
  <option disabled>2</option>
</select>   

或者,您可以使用jQuery

代码语言:javascript
复制
$("#test option:not(:selected)").prop("disabled", true);
票数 14
EN

Stack Overflow用户

发布于 2016-04-16 04:12:20

我的解决方案是在CSS中创建一个禁用的类:

代码语言:javascript
复制
.disabled {
    pointer-events: none;
    cursor: not-allowed;
}

然后您的选择将是:

代码语言:javascript
复制
<select name="sel" class="disabled">
    <option>123</option>
</select>

用户将无法选择任何值,但选择值仍将在表单提交时传递。

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

https://stackoverflow.com/questions/12769664

复制
相关文章

相似问题

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