<div class="span1">
<input type="checkbox" value="l4" id="l4" field="" defaultValue="" appEditor="true"/>
</div>
<div class="span7">
<input type="text" class="m-wrap span10" id="fld_l4" defaultValue="" editType="intEdit" appEditor="true" disabled />
</div>
我想要做的是,如果勾选复选框,请在fld_l4中删除已禁用。
如何使用Prototype.js或jQuery?
编辑:我正在使用jQuery原型 我收到一个错误:Uncaught InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable.
顺便说一句,我用jQuery替换$冲突
EDIT2:已解决。
this.l4 = editor.instance;
editor.observe(iconstants.KEY_CHANGE,this.levelCheckboxChanged.bindAsEventListener(this))
Inside levelCheckboxChanged:
levelCheckboxChanged: function(e) {
if($("l4").checked == false) {
$("fld_l4").disabled = true;
} else {
$("fld_l4").disabled = false;
}
},
答案 0 :(得分:2)
这种方式应该有效:
$("#l4").on("change", function () {
$("#fld_l4").prop("disabled", !$(this).is(":checked"));
});
jsFiddle:http://jsfiddle.net/J5Nt2/1/
答案 1 :(得分:2)
你可以这样做
$('#l4').change(function(){
if(this.checked){
$("#fld_l4").removeAttr('disabled');
}
})
答案 2 :(得分:1)
试试这个,
if( $("#l4:checked").length ) {
$("#fld_l4").removeAttr("disabled");
}
答案 3 :(得分:1)
以下是使用PrototypeJS
执行此操作的方法在DOM加载的事件中
document.observe('dom:loaded',function(){
$('l4').observe('click',function(){
$('fld_l4').writeAttribute('disabled',this.checked);
});
});
另外,您可能想要更改&#39; 14&#39;浏览器不喜欢你用数字开始id - 他们让你这样做但它不是HTML规范的一部分
答案 4 :(得分:0)
试试这个:
if( $("#l4").is(":checked") ) {
$('#fld_l4').removeAttr('disabled');
}