在javascript中启用复选框并在禁用复选框时获取其值
我有下表在javascript中启用复选框并在禁用复选框时获取其值,javascript,php,jquery,html,checkbox,Javascript,Php,Jquery,Html,Checkbox,我有下表 <tbody> <?php foreach($redeemSales as $sale) { ?> <tr value='<?php echo $sale['id']; ?>'> <td><input type="checkbox" name="salesIds[]" value="<?php echo $sale['id']; ?>" />
<tbody>
<?php
foreach($redeemSales as $sale)
{
?>
<tr value='<?php echo $sale['id']; ?>'>
<td><input type="checkbox" name="salesIds[]" value="<?php echo $sale['id']; ?>" /></td>
<td><?php echo $sale["ring"];?></td>
<td><?php echo formatFullDate($sale["soldDate"]) ?></td>
<td><?php echo $sale["saleType"]; ?></td>
<td>
<div class="col-lg-8">
<select name="claimTypes[]" class="form-control redeemOptions">
<option value="None">None</option>
<option value="CD">CherieDori Credit (CD)</option>
<option value="Amex">American Express Card (Amex)</option>
</select>
</div>
</td>
</tr>
<?php }?>
</tbody>
我有一个按钮,它只获取与复选框关联的所有saleid
这是密码
$('.redeemBtn').on('click', function()
{
$('input[name="salesIds[]"]').disabled = false;
var checked = $('input[name="salesIds[]"]:checked').serialize();
var cclaim = $('select[name="claimTypes[]"]').serialize();
if(checked !== '')
window.location.href = 'actions.php?j=4&' + checked + '&' + cclaim;
else
alert('No sales were selected');
});
如果我从复选框中删除“已禁用”,它可以正常工作,否则它会显示“未选择任何销售”,但我不想删除禁用的复选框。我不希望用户与之交互。如何获取显示为选中的复选框的值。应该做什么对于webdev来说,这是一个非常常见的情况。在这种情况下,您应该添加一些
隐藏的输入
<input type="hidden" name="salesIds[]" value="smth">
为了“演示”的目的,请保留不带名称的复选框。您不能这样做,您需要启用它以在服务器端查看/获取它(否则“客户端根本不会发送它”)。浏览器在“提交”中“不包括禁用的控件”,因为它们“不算作“成功的”控件”
因此,最好在提交时默认为该复选框指定一些值
见本文:
例如:单击按钮上的启用/禁用
复选框
<html>
<head>
<title></title>
<script type="text/javascript">
function chk_control(str) {
if(str=='dsb'){document.getElementById('ck1').disabled=true;}
else {document.getElementById('ck1').disabled=false;}
}
</script>
</head>
<body >
<form name=form1 method=post action=check.php>
<table>
<tr ><td ><input type=checkbox name=ckb id=ck1 value=1></td><td >PHP</td></tr>
<tr ><td ><input type=button value='Disable' onClick="chk_control('dsb')";></td>
<td ><input type=button value='Enable' onClick="chk_control('enb')";></td></tr>
</table></form>
</body>
</html>
功能chk_控制(str){
if(str=='dsb'){document.getElementById('ck1').disabled=true;}
else{document.getElementById('ck1').disabled=false;}
}
PHP
这将启用该字段。如果需要获取禁用的字段值,只需在单击“提交”后启用它。这是获取值的最简单方法。$('input[type=“checkbox”]”)。val()应为您提供该值,无论其是否禁用。在我的情况下,它为val提供了错误。如何启用所有禁用的复选框?比如说,点击按钮$('input[name=“salesIds[]”)。disabled=false;无法使用jQuery需要使用prop()
方法。。。查看docs最有效的方法是启用它们,我如何才能在按下按钮时做到这一点在示例中,我将给出一小段代码,请尝试一下。请为您的答案添加一些解释,说明它的作用以及它如何解决问题-这将帮助将来看到您答案的其他人
<html>
<head>
<title></title>
<script type="text/javascript">
function chk_control(str) {
if(str=='dsb'){document.getElementById('ck1').disabled=true;}
else {document.getElementById('ck1').disabled=false;}
}
</script>
</head>
<body >
<form name=form1 method=post action=check.php>
<table>
<tr ><td ><input type=checkbox name=ckb id=ck1 value=1></td><td >PHP</td></tr>
<tr ><td ><input type=button value='Disable' onClick="chk_control('dsb')";></td>
<td ><input type=button value='Enable' onClick="chk_control('enb')";></td></tr>
</table></form>
</body>
</html>
$('#id of checkbox').prop("disabled", false);