有没有办法阻止使用此javascript/jquery提交表单?
我在网上搜索过,我尝试过在各地执行“preventdefaults”和“ReturnFalse”语句,但我似乎找不到一种方法来阻止表单提交和重新加载页面。它仅在表单经过验证后重新加载。我是一个初学者,但我真的很努力地实现脚本来验证一个表单(它有“post”-方法和“#”作为动作),并进行ajax调用。这是一项学校作业,对于你们能给出的任何建议都是优雅的有没有办法阻止使用此javascript/jquery提交表单?,javascript,jquery,return,preventdefault,Javascript,Jquery,Return,Preventdefault,我在网上搜索过,我尝试过在各地执行“preventdefaults”和“ReturnFalse”语句,但我似乎找不到一种方法来阻止表单提交和重新加载页面。它仅在表单经过验证后重新加载。我是一个初学者,但我真的很努力地实现脚本来验证一个表单(它有“post”-方法和“#”作为动作),并进行ajax调用。这是一项学校作业,对于你们能给出的任何建议都是优雅的 $(document).ready(function() { $("#submit").click(function()
$(document).ready(function()
{
$("#submit").click(function()
{
var gbname = $("#gbname")[0];
var gbmessage = $("#gbmessage")[0];
formFields = [gbname, gbmessage]
var warning = false;
for (i=0; i<formFields.length; i++)
{
formFields[i].style.backgroundColor = "white";
if (formFields[i].value == "")
{
formFields[i].style.backgroundColor = "red"
$(formFields[i]).bind("keyup", resetBgColor);
$(formFields[i]).bind("change", resetBgColor);
warning = true;
}
}
if (warning == true)
{
alert("Vänligen fyll i fälten korrekt!");
return false;
}
else
{
$.post('ajax.php', {gbname: gbname, gbmessage: gbmessage},
function(data)
{
$("#successmessage").html(data);
$("#successmessage").hide();
$("#successmessage").fadeIn(1500); //Fade in error/success-meddelande
var comment = $("<div class='film2'><p class='names'><b>Namn:</b>" +gbname+ "</p> <p class='messages'><b>Meddelande:</b>" +gbmessage+ "</p></div>");
$("#kommentarer").prepend(comment);
clearForm();
});
return false;
}
return false;
});
});
$(文档).ready(函数()
{
$(“#提交”)。单击(函数()
{
变量gbname=$(“#gbname”)[0];
变量gbmessage=$(“#gbmessage”)[0];
formFields=[gbname,gbmessage]
var警告=错误;
对于(i=0;i来说,您对作为对象的输入元素的引用以及从AJAX调用返回的数据有点混乱
还纳入了对表单提交事件具有约束力的建议
$(文档).ready(函数(){
函数clearForm(){
$('input.reset')。每个(函数(){
$(this.val(“”);
});
}
$(“表单”)。在('submit',函数(){
警报(‘已提交’);
变量gbname=$(“#gbname”);
变量gbmessage=$(“#gbmessage”);
formFields=[gbname[0],gbmessage[0]]
var警告=错误;
对于(i=0;iNamn:“+data.gbname+” ”;
$(“#kommentarer”)。预编(评论);
clearForm();
}//最终成功
});//结束ajax
返回false;
}//结束其他
返回false;
});
});
我建议使用
$("form").on('submit', function (e) {
[...]
if(validationErrors) {
alert(Errormessage);
e.preventDefault();
}
[...]
而不是返回false。
为了让它工作,您必须使用事件作为回调函数的参数。确保您的按钮是常规按钮而不是提交按钮:)而不是单击尝试使用$('form')。提交(函数(){return false;})
每次单击该按钮时,您都在用事件绑定表单元素。这是一个坏主意。如果您检查js控制台,在重新加载页面之前是否注意到任何错误?如果我不得不冒险,我会怀疑您的代码中有错误,并且不会出现错误返回,因为代码无法完成执行-然后表单继续其默认行为,即post。答案是您的一个标记。Aka preventDefault。返回false可能由于JS错误而失败。设置您的控制台以保留页面导航上的控制台。这与上面的post相结合,我想这是个诀窍…谢谢
$("form").on('submit', function (e) {
[...]
if(validationErrors) {
alert(Errormessage);
e.preventDefault();
}
[...]