选中复选框后,我需要调用一个函数。我第一次检查复选框时没有调用该函数,而如果我再次检查它,则成功调用该函数。请帮我解决这个问题。在这里,我展示了我的HTML部分和功能。
<input type="checkbox" id="checkThen" onchange="LoadContactDetails()">
function LoadContactDetails() {
$("#checkThen").change(function () {
if ($(this).is(":checked")) {
// ..........
}
else {
// ..........
}
});
}
答案 0 :(得分:1)
您只需在首次点击时绑定change
事件。
删除onchange
属性,然后在dom ready回调中绑定更改事件。
HTML:
<input type="checkbox" id="checkThen">
JS:
$(function() {
$("#checkThen").change(function () {
if ($(this).is(":checked")) {
..........
}
else {
..........
}
});
});
答案 1 :(得分:1)
$(document).ready(function(){
$("#checkThen").change(function () {
if ($(this).is(":checked")) {
..........
}
else {
..........
}
});
});
答案 2 :(得分:1)
如果要附加内联事件处理程序,请使用
<input type="checkbox" id="checkThen" onchange="LoadContactDetails(this)" />
function LoadContactDetails(element) {
alert(element.checked);
}
如果要使用jQuery事件处理程序,
<input type="checkbox" id="checkThen" />
$(function() {
$("#checkThen").change(function () {
if (this.checked) {
// checked
}
else {
// unchecked
}
});
});
答案 3 :(得分:1)
删除函数LoadContactDetails()中的onchange属性。
<强> HTML:强>
<input type="checkbox" id="checkThen" onchange="LoadContactDetails()">
<强> JS:强>
function LoadContactDetails() {
if ($('#checkThen').is(":checked")) {
alert('checked');
}
else {
alert('Not-checked');
}
}
**Or**
您只需在首次点击时绑定更改事件。
删除onchange属性,然后在dom ready回调中绑定change事件。
<强> HTML 强>
<input type="checkbox" id="checkThen">
<强>的.js:强>
$(function() {
$("#checkThen").change(function () {
if ($(this).is(":checked")) {
alert('checked');
}
else {
alert('Not checked');
}
});
});
希望它对你有所帮助。
答案 4 :(得分:0)
每次调用函数change
时绑定LoadContactDetails()
事件。
(这不是正确的方式)
您可以直接在函数内调用代码。
function LoadContactDetails() {
if ($('#checkThen').is(":checked")) {
alert('checked');
} else {
alert('Not-checked');
}
}
答案 5 :(得分:0)
在第一次单击时,您将事件绑定到复选框。从第二次点击开始,回调函数被触发,并且还会发生新的事件绑定。您可以通过简单地更改代码来使其工作,
<强> HTML 强>
<input type="checkbox" id="checkThen" >
<强>的Javascript 强>
$(document).ready(function(){
$("#checkThen").change(function () {
if (this.checked) {
// checked
}
else {
// unchecked
}
});
});
请按照此article了解回调函数
答案 6 :(得分:0)
尝试使用“点击”代替“更改。它可能有用。
答案 7 :(得分:0)
我尝试了这里给出的所有解决方案,但它对我不起作用最后,我找到了解决这个问题的简单方法。我希望这对你也有帮助。
function LoadContactDetails() {
$("#checkThen").change(function () {
if ($(this).is(":checked")) {
alert('hello')
}
else {
alert('something wronge')
}
});
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" id="checkThen" onMouseDown="LoadContactDetails()"/>
&#13;