我有一个表单,当某个选择框发生更改时,它会使用Ajax填充一些复选框。效果很好。
但是,当我检查这些复选框时,我想使用jQuery来修改表单的另一部分 - 这似乎不起作用...... jQuery根本不会触发。
这是否与jQuery加载与ajax请求有关,而这是不可能的?或者我的代码中可能存在错误?
Ajax.php页面(按预期工作)
... some other code ...
$fields = "";
$i = 0;
foreach($cols as $c){
$fields .= '<tr><td width="50%"><input class="fieldCheckBox" data-num="' . $i . '" type="checkbox" name="data[' . $_GET['t'] . '][fields][' . $i . '][field]" value="' . $c . '"> ' . $c . '</td><td width="50%"><input type="text" name="data[' . $_GET['t'] . '][fields][' . $i . '][fieldAs]" class="form-control" style="width: 150px;"></td></tr>';
$i++;
}
echo $fields;
然后我的jQuery请求(不会被解雇)
... document.ready function...
$(".fieldCheckBox").change(function(){
alert("were in!");
});
答案 0 :(得分:2)
这是你的问题:
$(".fieldCheckBox").change(function(){
复选框的值实际上并没有改变,因此永远不会执行。
相反,您可以检查click
事件,例如:
$(".fieldCheckBox").click(function(){
编辑:如果页面加载时不存在复选框,则执行javascript时,需要事件委派以确保事件已注册。
一个简单的例子:
$('body').on('click', '.fieldCheckBox', function(){