我正在尝试将数据提交到数据库而不使用jquery和php刷新页面 但我想我的代码中有一些错误,如果我不应用Jquery,它的工作效果很好: 贝娄是我正在使用的代码。
<!---Insert into database -->
<script type="text/javascript">
$(document).ready(function () {
$('.chatbutton').click(function () {
$.ajax({
type: 'post',
url: "insertchatmessages.php",
success: function () {}
});
});
});
</script>
<!---Insert into database ends here -->
</head>
<body>
<table class="chattable" id="chattable" border="0">
<tr><td><div id="load_tweets">
</div></td></tr>
<form id ="chatform" action="?" method="post"></td></tr>
<tr><td><input class ="chattext" type ="text" name="message"></td></tr>
<tr><td><input class="chatbutton" class="chatbutton" type="submit" value="send" name ="submit">
</div>
</table>
答案 0 :(得分:3)
HTML(这是从您的代码派生的,但经过修改后可以在jsfiddle中使用):
<table class="chattable" id="chattable" border="0">
<tr>
<td>
<div id="load_tweets"></div>
</td>
</tr>
<tr>
<td>
<form id ="chatform" action="/echo/html/" method="post"> <!-- your action should point to your php (insertchatmessages.php) -->
<input type="hidden" name="html" value="This is sample text to show that this works!"/> <!-- for jsfiddle test only. remove this in your code. -->
<input class ="chattext" type ="text" name="message" />
<input class="chatbutton" class="chatbutton" type="submit" value="send" name ="submit" />
</form>
</td>
</tr>
</table>
jQuery的:
$(document).ready(function(){
$('#chatform').submit(function(e){
e.preventDefault();
var $form = $(this),
data = $form.serialize();
$.ajax({
data: data,
type: $form.attr("method"),
url: $form.attr("action"),
success: function(data){
$("#load_tweets").html("<p>"+data+"</p>");
}
});
});
});
工作示例:http://jsfiddle.net/darshanags/6vxMs/6/
注意:我对您的代码稍作修改以使其在jsfiddle上运行,您必须将其更改为使其在您的设置中正常工作。
答案 1 :(得分:3)
.chatbutton
是一个提交按钮。单击它时,jQuery处理程序将触发,然后表单提交(这是浏览器的默认行为)。在您的jQuery脚本中,您必须调用preventDefault()
:
$('.chatbutton').click(function(e){
e.preventDefault();
// rest of your code
更好的是,为表单提交函数指定一个处理程序(但仍需要防止默认行为)。
答案 2 :(得分:0)
使用submit
jquery函数。
$('#chatform').submit(function() { });
完整的JS代码
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function ()
{
$('#chatform').submit(function (e)
{
e.preventDefault();
$.ajax({
type: 'post',
url: "random.php",
success: function (response)
{
//do after response.
}
});
});
});
</script>
答案 3 :(得分:0)
jQuery serialize会有所帮助
<script type="text/javascript">
$(document).ready(function () {
$('.chatbutton').click(function (e) {
e.preventDefault();
$.ajax({
data: $('chatform').serialize(),
type: 'post',
url: "insertchatmessages.php",
success: function () {}
});
});
});
</script>
答案 4 :(得分:0)
简单用户e.preventDefault()在你的onclick调用开始时,当你想要停止默认行为时使用它:
<script type="text/javascript">
$(document).ready(function (e) {
$('.chatbutton').click(function () {
e.preventDefault();
$.ajax({
type: 'post',
url: "insertchatmessages.php",
success: function () {}
});
});
});
</script>