javascript在下拉值更改时设置readonly属性

L4r*_*eds 6 javascript jquery drop-down-menu

从下拉列表中选择值时,如果所选值等于某个值,我希望下拉列表更改为只读,我该怎么做?

HTML:

<select id="s_id">
   <option value="volvo">Volvo</option>
   <option value="saab">Saab</option>
   <option value="opel">Opel</option>
   <option value="audi">Audi</option></select>
Run Code Online (Sandbox Code Playgroud)

脚本:

$(document).ready(function () {
   $("#s_id").change(function () {
     var x = $(this).val();
     //alert("something's changed");
     alert($(this).val());
     if (x === opel) {
         alert("iff only.....");
         $(this).attr("readOnly", "true");
    }
   });
});
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/L4reds/xKQUd/2/

ver*_*icm 12

你需要比较x一个字符串,"opel"你可以使用该属性disabled,请参阅此处的小提琴:http://jsfiddle.net/xKQUd/3/

澄清:select元素不能设置readOnly,需要使用disabled属性

为了解决不发送到服务器的问题,设置隐藏的输入等于将在表单提交上发送的禁用值,请在此处查看此小提琴:http://jsfiddle.net/xKQUd/25/

  • 然而,更大的问题是`select`元素不能成为`readonly`. (2认同)
  • 但这意味着所选的值永远不会被发送到服务器,这可能与OP所需的相反.`disabled`不是一个可行的选择. (2认同)