php - 获取选择框中禁用(禁用并先前选择)选项的值

标签 php javascript html

我已经在下面编写了几行来显示多选框,并且我想要禁用先前选择的几个选项。

<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/

相关文章:

php - 关于带有 onchange 操作的下拉列表的快速 javascript 问题

PHP 没有在正确的地方回显

javascript - AngularJS - 单击时调用指令的监听器并将数据传递给它

javascript - 如何在css文件中写入javascript值

php - 运行 Yii 功能测试时打开 'SiteTest: Firefox.php' 失败

php - 如何在php中回显ascii加密文本

Javascript 计时

JavaScript 倒计时器未启动 [包括 Firebug 错误]

html - 我应该更改轴或向上/向下翻转的度数吗?

php - 来自对 PHP 的 AJAX 调用的奇怪的 JavaScript 语法错误