我有一个用于评论系统的JavaScript,但是当我点击提交按钮时带有类名" com_submit"除了页面重新加载之外没有任何反应。即使我将表单留空并提交警报也应弹出,但它不是。我做错了什么?
这是我的代码:
$(function() {
$('.com_submit').live("click", function() {
var comment = $("#comment").val();
var user_id = $("#user_id").val();
var perma_id = $("#perma_id").val();
var dataString = 'comment='+ comment + '&user_id='+ user_id + '&perma_id=' + $perma_id;
if(comment=='') {
alert('Please Give Valid Details');
}
else {
$("#flash").show();
$("#flash").fadeIn(400).html('<img src="ajax-loader.gif" />Loading Comment...');
$.ajax({
type: "POST",
url: "commentajax.php",
data: dataString,
cache: false,
success: function(html){
$("ol#update").append(html);
$("ol#update li:first").fadeIn("slow");
$("#flash").hide();
}
});
}
return false;
});
});
我尝试过使用.click,.live和.bind这些工作
答案 0 :(得分:2)
您的代码中存在拼写错误,因为它发生了运行时错误并且页面重新加载,因为它是一个链接。
var perma_id = $("#perma_id").val();
$(function() {
$('.com_submit').live("click", function() {
var comment = $("#comment").val();
var user_id = $("#user_id").val();
var perma_id = $("#perma_id").val();
var dataString = 'comment='+ comment + '&user_id='+ user_id + '&perma_id='
+ perma_id;//<<<------ Here was the typo(You have used $perma_id)
if(comment=='') {
alert('Please Give Valid Details');
}
else {
$("#flash").show();
$("#flash").fadeIn(400).html('<img src="ajax-loader.gif" />Loading Comment...');
$.ajax({
type: "POST",
url: "commentajax.php",
data: dataString,
cache: false,
success: function(html){
$("ol#update").append(html);
$("ol#update li:first").fadeIn("slow");
$("#flash").hide();
}
});
}
return false;
});
});
答案 1 :(得分:0)
这是按预期工作的。换句话说,您的提交按钮正在提交。你想要做的是停止正常的行为。试试这个:
$('.com_submit').live("click", function(e) {
e.preventDefault();
.
.
.
代码顶部。