我的源代码中有以下内容,我希望能够将公司和码头灰显,如果有人选择运输或存储则禁用
<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" />
编辑
我已经尝试过此操作,但现在它删除了禁用的属性,但没有将其添加回来
<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
} 其他 { $("#company").removeAttr("已禁用") 。重点() } });
但现在一旦启用我就无法再次禁用它
编辑
现在可以使用
最佳答案
$("#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 处理程序绑定(bind)到 select 元素。
- 如果所选选项的值为“运输”或“存储”,请禁用这两个输入,否则启用它们。
参见:
关于cakephp - 如果从项目中选择则禁用输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365690/