我正在尝试单击输入类型复选框..单击时会执行AJAX调用。我有一个听众设置但没有任何事情发生......萤火虫也没有显示任何内容。
代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js{API removed}"></script>
<script type="text/javascript">
$(document).ready(function() {
alert('test');
if ($('#profile_visible:checked').val() !== null) {
$.ajax({
url: 'inc/profileVisible.php',
success: function(data) {
$('#resultProfileVisible').innerhtml="success";
alert('Load was performed.');
}
});
}
}
</script>
......并在文件正文中:
<form method="post" action="profile/<?php echo $_SESSION['usern']; ?>/settings">
<p><input type="checkbox" id="profile_visible" name="profile_visible" /> Show Profile<span id="resultProfileVisible"></span></p>
</form>
感谢
答案 0 :(得分:1)
您没有设置事件侦听器。使用on
(jQuery&gt; 1.7)或bind
(jQuery&lt; 1.7)或jQuery的各种快捷方法(如.change
或.click
)绑定事件处理程序:
$(document).ready(function() {
$("#profile_visible").change(function() {
if (this.checked) {
$.ajax({
url: 'inc/profileVisible.php',
success: function(data) {
$('#resultProfileVisible').html("success");
alert('Load was performed.');
}
});
}
});
});
另外,在使用jQuery对象时,使用.html()
代替.innerHtml
来设置元素的html内容。
答案 1 :(得分:1)
唯一的侦听器是DOM就绪,因此它只会运行一次。
您的代码存在一些问题。见下文。
$(document).ready(function () {
alert('test');
// I assume you just want to see if it is checked
if ($('#profile_visible').is(':checked')) {
$.ajax({
url: 'inc/profileVisible.php',
success: function (data) {
// jQuery has .html(), not innerhtml
$('#resultProfileVisible').html( "success" );
alert('Load was performed.');
}
});
}
}) // <-- was missing closing parentheses
答案 2 :(得分:0)
像这样更改代码
$(document).ready(function(){
$('#profile_visible').change(function(){ // handler when the checkbox is toggled
if($(this).attr('checked')) { // check if it is checked
$.ajax({
url: 'inc/profileVisible.php',
success: function(data) {
$('#resultProfileVisible').html("success"); // change here
alert('Load was performed.');
}
});
}
});
});
答案 3 :(得分:0)
我没有看到你的倾听者。尝试
$(document).ready(function() {
$('#profile_visible').change(function() {
if ($(this).attr('checked')) {
$.ajax({
url: 'inc/profileVisible.php',
success: function(data) {
$('#resultProfileVisible').html("success"); // change here
alert('Load was performed.');
}
});
}
});
});