我已经在下面编写了几行来显示多选框,并且我想要禁用先前选择的几个选项。
<select multiple="multiple" name='cars[]'>
<option value="volvo" disabled selected='selected'>Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
因此,在 POST 方法中,我想获取所有选定选项的值,包括第一个沃尔沃。
最佳答案
Afaik,任何现代浏览器都不会在表单中提交禁用的选项/字段。最简单的解决方案是使用“readonly”属性将其设为“readonly”字段。
但是,您必须将该字段设置为看起来已被禁用的样式,因为只读不会更改该字段的外观,它只会阻止用户对其进行修改。
然而,丑陋的部分是,某些浏览器不允许为选择字段设置只读属性。
在这种情况下,我通常所做的是实际禁用选择并将值存储在隐藏字段中,而不是使用一些不太难看的 JavaScript 来动态控制它。
更新:
您可以轻松编写一个“serializeDisabled”函数,迭代具有 name 属性的禁用表单元素,并在末尾使用 jQuery.param 函数来生成序列化字符串(此处的函数来自用户 CMS):
(function ($) {
$.fn.serializeDisabled = function () {
var obj = {};
$(':disabled[name]', this).each(function () {
obj[this.name] = $(this).val();
});
return $.param(obj);
}
})(jQuery);
关于php - 获取选择框中禁用(禁用并先前选择)选项的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697149/