单击按钮时,我的代码将调用ajax脚本。像这样,ajax脚本此时只返回0或1:
$result = 1;
echo json_encode($result);
问题出在这一行:
$('.adt-checkbox_0')[0].prop("checked", result);
出现错误
TypeError:$(...)[0]未定义;无法访问其“ prop”属性
该代码似乎可以正常运行,但是它似乎运行了两次,因为偶尔会出现故障(php代码中的错误消息)。如我在某些帖子中看到的,如果我删除了[0],该错误将消失,但脚本无法正常工作。我在jsfiddle中添加了以下代码,但是由于php函数,它无法正常工作。有人可以解释那句话有什么问题吗?我应该检查一下它是否存在吗?如果是这样,我该怎么办?
<form>
<tr>
<input type="hidden" name="pid-adt-checkbox_0" value="14" id="pid-adt-checkbox_0" />
<td class="adt" id="adt-checkbox_0"><input type="checkbox" name="adt_check_0" /></td>
</tr>
<tr>
<input type="hidden" name="pid-adt-checkbox_1" value="15" id="pid-adt-checkbox_0" />
<td class="adt" id="adt-checkbox_1"><input type="checkbox" name="adt_check_1" /></td>
</tr>
</form>
<script>
$(".adt").click(function(){
var next_id = $(this).closest('td').attr('id') ;
var pid_id = 'pid-'+next_id;
var pid = $("#"+pid_id).val();
var dataArray = {};
dataArray[0] = 'change_status';
dataArray[1] = 'oID';
dataArray[2] = pid;
$.ajax({
type: 'POST',
data: dataArray ,
async: false,
url:"adt_ajax.php",
dataType: 'json',
success:function(result) {
$('.adt-checkbox_0')[0].prop("checked", result);
}
});
return false;
});
</script>
答案 0 :(得分:0)
问题:
adt-checkbox_0
不是class
,而是id
,此修复程序将其更改为#adt-checkbox_0
adt-checkbox_0
不是input[type=checkbox]
,而是td
的修正:#adt-checkbox_0 input
使用索引[0]
将返回本机JS对象而不是jQuery,此修复方法是:使用.eq(0)
要使用[0]
$('#adt-checkbox_0 input')[0].checked = result
使用jQuery
$('#adt-checkbox_0 input').eq(0).prop("checked", result);