以下是我的jQuery函数,用于将姓名,密码和电子邮件的值发布到register.php
,然后在register.php
的{{1}}中显示回显的消息。
然而,当我点击div#message
没有任何反应时,控制台没有点击日志。
的jQuery
postBtn
这是输入所有数据的HTML块,但单击按钮$(document).ready(function() {
$("#btnPost").on("click", function() {
console.log('clicked');
var thisBtn = $(this);
var parent = thisBtn.parent();
name = parent.data('name');
password = parent.data('password');
email = parent.data('email');
$.post(
'register.php',
{
name: ('name'),
password: ('password'),
email: ('email')
},
function(data) {
parent.next('#message').html(data);
}
);
});
});
时似乎没有任何事情发生。
#postBtn
答案 0 :(得分:0)
我使用相同的语法给自己一个类似的问题,我重新尝试了以下几行,它解决了问题....
尝试:
$(document).on("click", "#btnPost", function() { //implementation });
您可以将$(document)
更改为包含div的名称,或更低级别的内容,只要其中包含#btnPost
。
答案 1 :(得分:0)
检查源(HTML)中包含的jQuery库文件的顺序。首先是jQuery库文件,然后是你的javascript文件。看来你的代码在jsfiddle中正常工作。其中一个原因可能是jQuery文件不存在或加载顺序可能不匹配。
答案 2 :(得分:0)
您的问题是您使用.next()
,它返回当前元素的下一个兄弟。而且由于你传递了一个选择器,如果下一个兄弟满足选择器,你只会得到一个结果,否则你什么也得不到。只需使用$("#message")
,因为#message
不是您按钮的父元素之后的下一个兄弟。
$.post(
'register.php',
{
name: ('name'),
password: ('password'),
email: ('email')
},
function(data) {
$('#message').html(data);
}
);