如果从项目中选择,则禁用输入

时间:2011-06-15 23:41:37

标签: cakephp jquery cakephp-1.3

我的源代码中包含以下内容,我希望能够将公司灰化并停靠,如果有人选择运输或存储,则禁用

<select name="myselect" id="myselect">

<option value="shipping">Shipping</option>
<option value="Recieving" selected="selected">Reciving</option>
<option value="Storage">Storage</option>
</select>

company:<input name="company" type="text"  id="company" /></div>
dock:<input name="dockingStation" type="text"  id="dock" />

修改

我试过这个但是现在它删除了禁用的attribut但没有添加回来

  <select name="myselect" id="myselect">

        <option value="shipping">Shipping</option>
        <option value="Recieving" selected="selected">Reciving</option>
        <option value="Storage">Storage</option>
        </select>

        company:<input name="company" type="text"  id="company" **disabled="disabled**"/>
        dock:<input name="dockingStation" type="text" id="dock" disabled="disabled" />

和jquery是

$("#myselect").change(function() {
    var val = $(this).val();
    if(val == "shipping" || val == "storage") {
         $("#company").attr("disabled", true)  // this works

} else {           $( “#公司”)。removeAttr( “已禁用”)               。焦点()         }     });

但是现在一旦启用我就无法再次禁用它

修改

现在工作

1 个答案:

答案 0 :(得分:4)

$("#myselect").change(function() {
    var val = $(this).val();
    if(val == "shipping" || val == "storage") {
        $("#company, #dock").prop("disabled", true)
    } else {
        $("#company, #dock").prop("disabled", false)
    }
});

或者如果您更喜欢较短的解决方案:

$("#myselect").change(function() {
    var val = $(this).val();
    $("#company, #dock").prop("disabled", (val == "shipping" || val == "storage"));
}).change(); // optional, set the correct state if you don't know what
             // the initial selected option will be on page load

简要说明:

  • 将onchange处理程序绑定到select元素。
  • 如果所选选项的值为“送货”或“存储”,请禁用这两个输入,否则启用它们。

请参阅:

演示:http://jsfiddle.net/f6AZk/

相关问题