Javascript 根据复选框启用和禁用文本框
我试图在复选框未选中时禁用文本框,在javascript中选中复选框时启用文本框 这是我的代码,但它不起作用:Javascript 根据复选框启用和禁用文本框,javascript,textbox,Javascript,Textbox,我试图在复选框未选中时禁用文本框,在javascript中选中复选框时启用文本框 这是我的代码,但它不起作用: if($productsArray[$i]) { $productName = $productsArray[$i]->getProductName() ; $id = $productsArray[$i]->getId(); $product = $control->getNonFre
if($productsArray[$i])
{
$productName = $productsArray[$i]->getProductName() ;
$id = $productsArray[$i]->getId();
$product = $control->getNonFreshProductById($id);
$personAmount = $product->getPersonAmount() ;
echo "<tr>";
echo "<th td valign='middle' > <br/> <input type='checkbox' name='nonFreshProduct".$i."' id ='nonFreshProduct".$i."' style='position:absolute; left:20%' onclick='document.getElementById('outcome".$i."').disabled=!this.checked;'/>".$productName."</th>";
echo "<th td valign='middle' style='text-align:-webkit-left'> <br/> <input type='text' name='outcome".$i."' id ='outcome".$i."'/></th>";
echo "<input type='hidden' name='nfid".$i."' id='nfid".$id."' value='".$id." ' /></th>";
echo "</tr>";
}
if($productsArray[$i])
{
$productName=$productsArray[$i]>getProductName();
$id=$productsArray[$i]->getId();
$product=$control->getNonFreshProductById($id);
$personAmount=$product->getPersonAmount();
回声“;
echo“
“$productName.”;
回声“
”;
回声“;
回声“;
}
使用jQuery,您可以执行以下操作:
$( '#myInput' ).prop( 'disabled', $('#mycheckBox').is( ':checked' ) );
document.getElementById('myInput').disabled = document.getElementById('mycheckBox').checked;
没有jQuery,您可以执行以下操作:
$( '#myInput' ).prop( 'disabled', $('#mycheckBox').is( ':checked' ) );
document.getElementById('myInput').disabled = document.getElementById('mycheckBox').checked;
这种方法有点脏,我发现这个问题和答案更符合我的喜好:
您所要做的就是让处理程序监听复选框的更改事件,然后根据事件启用/禁用 JSFIDLE示例: 示例代码: 编辑:要在PHP中使用javascript,只需将脚本放入脚本标记中
<script type="text/javascript">
function enableElement(element) {
$(element).removeAttr('disabled');
}
function disableElement(element) {
$(element).attr('disabled', 'disabled');
}
function checkboxChangeHandler() {
var checkbox = $('#ckb'),
textbox = $('#txb');
if(checkbox.is(':checked'))
{
enableElement(textbox);
}
else
{
disableElement(textbox);
}
}
$('#ckb').on('change', checkboxChangeHandler);
</script>
功能启用元素(元素){
$(元素).removeAttr('disabled');
}
功能禁用元素(元素){
$(element.attr('disabled','disabled');
}
函数checkboxChangeHandler(){
变量复选框=$(“#ckb”),
文本框=$('txb');
if(checkbox.is(':checked'))
{
enableElement(文本框);
}
其他的
{
禁用元素(文本框);
}
}
$('#ckb')。on('change',checkboxChangeHandler);
带或不带jQuery?这是什么语言?请不要将所有HTML放在字符串中这只会在选中复选框时禁用它,取消选中时不会启用它查看编辑。添加else语句并调整道具应该可以切换。谢谢Matt。。我有了这个想法,我在我的代码中使用了相同的逻辑,它只是不起作用,我不知道为什么:(谢谢回答。但是我可以把这个代码放在我的PHP代码中吗?我相信是的,你所要做的就是添加脚本标签,请参阅编辑。