Tat*_*rin -1 javascript php checkbox jquery smarty
出于某种原因我的代码不起作用?!我需要检查复选框,如果所有都是"未选中",则启用隐藏字段并将值发送到db,这样我就可以确定未选中复选框.
问题1:为什么我的jquery代码不起作用?
问题2:我需要将已检查或未检查的值记录到DB.我的计划是检查是否在php中没有选中.这是一个好习惯吗?
HTML
<tr class="more_info">
<th valign="top">Other options:</th>
{foreach from=$HTML_cOPTIONS key=dbname item=optname}
{if ! empty($CARINFO[car].{$dbname})}
<td><input type="checkbox" id="forced_checkbox" name="c_options[]" value="{$dbname}" checked/> {$optname} </br></td>
{else}
<td><input type="checkbox" id="forced_checkbox" name="c_options[]" value="{$dbname}"/> {$optname} </br></td>
{/if}
{/foreach}
<input type="hidden" id="forceSendCheckBox" name="c_options[]" value="nocheckboxes"/>
<input type="button" value="Check" id="check" />
</tr>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$('#check').bind('click',function()
{
if ($('#forced_checkbox').filter(':not(:checked)').length == 0) {
console.log('at least one checked');
$("#forceSendCheckBox").prop('disabled',true);//do not send this field to DB
} else {
console.log('nothing checked');
$("#forceSendCheckBox").prop('disabled',false);//send empty checkboxes
}
});
Run Code Online (Sandbox Code Playgroud)
UPDATE
这是一个小提琴,它似乎仍然被打破.: - /
ID必须是唯一的.请改用一个班级.
你的小提琴你有几个问题.首先,您忘记从菜单中选择jQuery框架,因此没有任何jQuery代码可以工作.其次,您将过滤器更改not(:checked)为(:checked),但未更改== 0为> 0.第三,没有not,你不应该在过滤器选择器周围有括号.第四,您尝试使用输入字段显示消息.text(),但正确的方法是.val().
这是更正后的代码:
$('#check').on('click', function () {
if ($('.forced_checkbox').filter(':checked').length > 0) {
$('#forceSendCheckBox').val('at least one checked');
} else {
$('#forceSendCheckBox').val('nothing checked');
}
});
Run Code Online (Sandbox Code Playgroud)