Javascript 无空白数据的表格提交

Javascript 无空白数据的表格提交,javascript,php,ajax,forms,email,Javascript,Php,Ajax,Forms,Email,我在我的网站的页脚部分有一个表单,它通过电子邮件向我发送基本用户输入和当前页面url。这是它的布局 <form action="" id="myform" method="post"> <input name="name" type="text" class="transparent-white-border-input" placeholder="Your Name"> <input name="email" type="text" class="

我在我的网站的页脚部分有一个表单,它通过电子邮件向我发送基本用户输入和当前页面url。这是它的布局

<form action="" id="myform" method="post">
    <input name="name" type="text" class="transparent-white-border-input" placeholder="Your Name">
    <input name="email" type="text" class="transparent-white-border-input" placeholder="Email Address">
    <textarea name="enquiry" class="transparent-white-border-input" rows="5" placeholder="Enquiry or Project Details...."></textarea>
    <input name="from_page" type="hidden" value="<?=$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI]?>">
    <div class="send-btn">Send</div>
</form>


您应该添加服务器端验证。然后,您还可以根据会话变量检查隐藏字段,以减少垃圾邮件。同意@jeroen ans,您还可以添加验证码。一些垃圾邮件脚本可能只是解析你的表单并发送他们想要的数据。有人很可能使用开发工具编辑你的JavaScript检查以发送一个空白表单。您可以使用php再次验证它,只是为了确定。@jeroen为所有表单设置服务器站点验证是否常见?@EugeneGlova我不太明白的是,这样做的目的是什么
<script>
$('.send-btn').click(function(){
    if(validateForm()){
        $.ajax({
            url: "/ajax-request.php?function=footer_contact_form",
            type: "post",
            data: $("#myform").serialize(),
            success: function() {
                $(".emocean-contact-form .section-container").html('<h1 style="color: #fff; text-align:center;">Thank you for contacting us, we will get back to you shortly.</h1>');
            }
        });
    }
    else{
        alert("Please fill in all fields in blue.");
    }
})
function validateForm(){
    a=document.forms["myform"]["name"];
    a_regex=/\S/;
    d=document.forms["myform"]["email"];
    d_regex=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; //stackoverflow standard
    e=document.forms["myform"]["enquiry"];  
    e_regex= /\S/;

    valid = true;
    $("#myform input").css("backgroundColor", "");
    $("#myform textarea").css("backgroundColor", "");

    function check (origin, regex){
        if (!regex.test(origin.value)){
            origin.style.backgroundColor="blue";
            valid = false;          
        }   
    }

    check(a, a_regex);
    check(d, d_regex);
    check(e, e_regex);

    return valid;
}       
</script>