如果未选中复选框,我尝试禁用文本框,如果在javascript中选中该复选框,则启用它
这是我的代码,但它不起作用:
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>";
}
答案 0 :(得分:0)
使用jQuery,您可以:
$( '#myInput' ).prop( 'disabled', $('#mycheckBox').is( ':checked' ) );
如果没有jQuery,你可以这样做:
document.getElementById('myInput').disabled = document.getElementById('mycheckBox').checked;
这种方法有点脏,我发现这个问题和答案更符合我的喜好:
Toggle Disabled Attribute on Input Based on Checkbox in jQuery
答案 1 :(得分:0)
您所要做的就是让一个处理程序监听复选框的更改事件,然后根据事件启用/禁用。
jsfiddle示例: http://jsfiddle.net/w9u09ohc/
示例代码:
编辑:要在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>