我想檢查一個複選框,如果某個輸入字段被填充。在JQuery中,爲什麼我不能在調用removeAttr(「checked」)後檢查複選框?
下面的解決方案最初工作。輸入輸入後,該複選框被正確選中。輸入被刪除後,複選框未被選中。但再次輸入輸入後,複選框不會被檢查。
<html>
<head>
<script src="jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(":input").blur(function() {
var val = $(this).val();
var myclass = $(this).attr("class");
if (val != null && val.length > 0) {
$(":checkbox." + myclass).attr("checked", "checked");
} else {
$(":checkbox." + myclass).removeAttr("checked");
}
});
});
</script>
</head>
<body>
<form action="#" method="POST">
Name is selected? <input id="isNameSelected" type="checkbox" name="isName" class="name_input"></input><br/>
Name: <input class="name_input" id="name" type="text" name="Name"></input>
</form>
</body>
</html>
使用道具(「選中」,真/假),而不是ATTR – Sunand 2014-09-23 19:55:59
VAL,操作之後,很可能觸發您的其他聲明。如果要查看「val」的值是什麼,我會在你之前做一個控制檯日誌。 – dudewad 2014-09-23 19:56:08
這似乎在這裏正常工作:http://jsfiddle.net/m4u8ge2h/ - 但我在本地嘗試它可以repro錯誤,所以沒關係, – 2014-09-23 19:56:19