prop(checked,true)不生效

幽夜莫知途 2021-02-02 03:02:13

主要代码如上,需求是在初始化时获取数据,根据数据 判断选择框状态,结果无论如何设为true都没反应如下图
除了以上还发现两点问题:
1.将那段更改checked为true的代码放在页面元素后,<script></script>中就可以执行。
2.我点击选项框第一次时是没反应的,后面才会出现选择到的效果,我推断是状态改变了,页面不知什么原因没渲染的原因,可是又找不到头绪。
求大佬指教!!!!!!!!!!!!
...全文
145 点赞 收藏 5
写回复
5 条回复
汇品铺子 02月04日
引用 4 楼 幽夜莫知途 的回复:
[quote=引用 3 楼 惠品铺子 的回复:]你打个断点进去看看
没打断点我直接alert可以的[/quote] 你简化一下代码看看。这样执行是没问题的。

<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>无标题文档</title>
<script type="text/javascript" src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
	
	function change() {
		$('#IsAudit').prop('checked', true).change();
	}

	function initControl() {
		console.log("异步加载数据等待3s");
		setTimeout(function() {
			change();
		}, 3000)
	}

	initControl();
});
</script>
</head>

<body>
<label>审核状态<input id="IsAudit" type="checkbox" name=""></label>
</body>
</html>
回复 点赞
幽夜莫知途 02月04日
引用 3 楼 惠品铺子 的回复:
你打个断点进去看看
没打断点我直接alert可以的
回复 点赞
汇品铺子 02月04日
你打个断点进去看看
回复 点赞
幽夜莫知途 02月04日
引用 1 楼 惠品铺子 的回复:
你这是异步的原因吧,当你点击复选框的时候,setForm去请求接口,这个时候数据还没返回,还没到success,所以没有马上执行change();当接口返回结果之后执行回调success才能接着执行到change()复选框才会勾选。 你可以加个等待的状态来解决这个交互问题。
change直接在success方法中,请求成功应该就会执行这个方法啊,问题就是这里的change没反应,除了这个checkbox其他控件都是渲染成功的应该是执行成功了的,进入到了success方法中的。
回复 点赞
汇品铺子 02月03日
你这是异步的原因吧,当你点击复选框的时候,setForm去请求接口,这个时候数据还没返回,还没到success,所以没有马上执行change();当接口返回结果之后执行回调success才能接着执行到change()复选框才会勾选。 你可以加个等待的状态来解决这个交互问题。
回复 点赞
发动态
发帖子
JavaScript
创建于2007-09-28

5.1w+

社区成员

22.3w+

社区内容

Web 开发 JavaScript
社区公告
暂无公告