jQuery验证后联系表单不会提交
Posted
技术标签:
【中文标题】jQuery验证后联系表单不会提交【英文标题】:Contact form won't submit after jQuery validation 【发布时间】:2017-06-06 02:23:42 【问题描述】:我无法让我的表单在客户端验证并在此之后提交。问题可能出在代码的提交部分,因为如果我删除提交部分,验证部分就会起作用。任何人都可以帮助我吗? 这是我的代码:
var allowed_file_size = "5242880";
var allowed_files = ['image/png', 'image/psd', 'image/jpeg', 'image/eps'];
var border_color = "#036a96"; //initial input border color
$("#contact_body").submit(function(e)
e.preventDefault(); //prevent default action
proceed = true;
//simple input validation
$($(this).find("input[data-required=true], textarea[data-required=true]")).each(function()
if (!$.trim($(this).val())) //if this field is empty
$(this).css('border-color', 'red'); //change border color to red
proceed = false; //set do not proceed flag
//check invalid email
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]2,4)?$/;
if ($(this).attr("type") == "email" && !email_reg.test($.trim($(this).val())))
$(this).css('border-color', 'red'); //change border color to red
proceed = false; //set do not proceed flag
).on("input", function() //change border color to original
$(this).css('border-color', border_color);
);
//check file size and type before upload, works in modern browsers
if (window.File && window.FileReader && window.FileList && window.Blob)
var total_files_size = 0;
$(this.elements['my-file'].files).each(function(i, ifile)
if (ifile.value !== "") //continue only if file(s) are selected
if (allowed_files.indexOf(ifile.type) === -1) //check unsupported file
$("#push").html(ifile.name + " nije dozvoljen tip fajla!");
proceed = false;
total_files_size = total_files_size + ifile.size; //add file size to total size
);
if (total_files_size > allowed_file_size)
$("#push").html("Maksimalna velicina fajla je 5 MB!");
proceed = false;
if (proceed)
var post_url = $(this).attr("action"); //get form action url
var request_method = $(this).attr("method"); //get form GET/POST method
var form_data = new FormData(this); //Creates new FormData object
$.ajax( //ajax form submit
url: post_url,
type: request_method,
data: form_data,
dataType: "json",
contentType: false,
cache: false,
processData: false
).done(function());
);
【问题讨论】:
你介意提交一个 jsfiddle (jsfiddle.net) 吗? 这里是漏洞代码:gist.github.com/anonymous/b850b380b5062a8e7eca6ef0cf8e87e7@thedayturns 谢谢你的努力 【参考方案1】:从您的代码中,在 $.ajax
函数调用中:
).done(function());
这是不正确的语法。该功能需要一个主体。应该是).done(function() );
【讨论】:
谢谢,但这仍然没有解决我的问题。我是新手,所以如果您需要更多信息来解决我的问题,请现在告诉我。再次感谢。【参考方案2】:认为您可能缺少done
回调的函数体,这会导致语法错误。如果您打开了 DEV 控制台,会更容易发现。
).done(function());
应该是
).done(function() );
【讨论】:
谢谢,但这仍然没有解决问题。我已经打开了 DEV 控制台,但没有任何关于我的问题。我需要提供更多信息吗?以上是关于jQuery验证后联系表单不会提交的主要内容,如果未能解决你的问题,请参考以下文章