我已经在下面写了一行来显示多选框,我想要几个选项已禁用,这是先前选择的。
<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方法中我希望获得所有选定选项的值,包括第一个volvo。
答案 0 :(得分:1)
Afaik,没有现代浏览器会在表单中提交禁用的选项/字段。最简单的解决方案是使用“readonly”属性使其成为“只读”字段。
但是,您必须将字段设置为看起来已被禁用,因为readonly不会更改字段的外观,它只是阻止用户修改它。
然而,丑陋的部分是某些浏览器不允许为select字段设置readonly属性。
在这种情况下我通常做的是实际禁用select并将值存储在隐藏字段中,而不是使用一些不那么难看的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);
答案 1 :(得分:1)
您可以创建一个javascript函数来循环选项onSubmit并再次启用它们。禁用的元素不会被发布。
答案 2 :(得分:1)
当您设置禁用时永远不会进入POST数据....替换选择输入类型text..and使用“readonly”属性...
由于