Javascript 即使email.value==”提交也会引发火灾&引用;

Javascript 即使email.value==”提交也会引发火灾&引用;,javascript,Javascript,我正在制作一个简单的表单,其中一个用户提交一个视频,以及他们的电子邮件地址。我想这样做,使人不能提交表格,直到他们填写了电子邮件并保存了视频 视频部分正在工作,但当我用一封空邮件测试时,它似乎仍然提交。代码如下,实时版本位于 非常感谢您的帮助 // Global variable to hold player's reference. var _Nimbb; // Global variable to hold the guid of the recorded video. var _Guid

我正在制作一个简单的表单,其中一个用户提交一个视频,以及他们的电子邮件地址。我想这样做,使人不能提交表格,直到他们填写了电子邮件并保存了视频

视频部分正在工作,但当我用一封空邮件测试时,它似乎仍然提交。代码如下,实时版本位于

非常感谢您的帮助

// Global variable to hold player's reference.
var _Nimbb;

// Global variable to hold the guid of the recorded video.
var _Guid = "";

// Event: Nimbb Player has been initialized and is ready.
function Nimbb_initCompleted(idPlayer) {
    // Get a reference to the player since it was successfully created.
    _Nimbb = document[idPlayer];
}

// Event: the video was saved.
function Nimbb_videoSaved(idPlayer) {
    _Guid = _Nimbb.getGuid();
}

jQuery(document).ready(function ($) {

    // Get the data from the form.  Check that everything is completed.
    $('#video_submit').click(function (e) {

        var email = document.getElementById("email").value;
        var video_title = document.getElementById("video_title").value;
        var form = document.myForm;

        // Make sure the email is specified.
        if (email.value == "") {
            alert("Please enter your email to proceed.");
            return;
        }

        // Verify that the video is not currently recording.
        if (_Nimbb.getState() == "recording") {
            alert("The video is being recorded. Please wait.");
            return;
        }

        // Check that video has been recorded.
        if (_Guid == "") {
            alert("You did not save the video.  Click save.");
            return;
        }

        // Set the guid as hidden parameter.
        form.guid.value = _Guid;

        var dataString = 'email=' + email + '&guid=' + _Guid + '&video_title=' + video_title;
        //alert (dataString);return false;  
        $.ajax({
            type: "POST",
            url: "<?php echo get_template_directory_uri();?>/send.php",
            data: dataString,
            success: function () {
                $('#contact_form').html("<div id='message'></div>");
                $('#message').html("<h2>Contact Form Submitted!</h2>")
                    .append("<p>We will be in touch soon.</p>")
                    .hide()
            }
        });
        document.forms["myForm"].submit();
    });
});
//保存玩家引用的全局变量。
var_Nimbb;
//用于保存录制视频的guid的全局变量。
var _Guid=“”;
//事件:Nimbb播放器已初始化并准备就绪。
函数nimb_initCompleted(idPlayer){
//获取对播放机的引用,因为它已成功创建。
_Nimbb=文档[idPlayer];
}
//事件:视频已保存。
功能Nimb_videoSaved(idPlayer){
_Guid=_nimb.getGuid();
}
jQuery(文档).ready(函数($){
//从表单中获取数据。检查所有内容是否已完成。
$(“#视频_提交”)。单击(功能(e){
var email=document.getElementById(“email”).value;
var video_title=document.getElementById(“video_title”).value;
var form=document.myForm;
//确保指定了电子邮件。
如果(email.value==“”){
提醒(“请输入您的电子邮件继续。”);
返回;
}
//确认当前未录制视频。
如果(_Nimbb.getState()=“录制”){
警报(“正在录制视频。请稍候”);
返回;
}
//检查视频是否已录制。
如果(_Guid==“”){
警报(“您没有保存视频。请单击“保存”);
返回;
}
//将guid设置为隐藏参数。
form.guid.value=\u guid;
var dataString='email='+email+'&guid='+'guid+'&video\u title='+video\u title;
//警报(数据字符串);返回false;
$.ajax({
类型:“POST”,
url:“/send.php”,
数据:dataString,
成功:函数(){
$(“#联系方式”).html(“”);
$('#message').html(“已提交联系人表单!”)
.append(“我们将很快联系。

”) .hide() } }); document.forms[“myForm”].submit(); }); });
当您从该处理程序函数返回时,浏览器将继续执行“提交”事件的正常行为,即提交表单

您可以将“abort”返回语句更改为

return false;

查看您的实时站点后

email = "" // Empty string
鉴于

email.value = undefined 
尝试将代码更改为

if (email === "") {
    alert("Please enter your email to proceed.");
    return;
}
我假设您两次错误地执行了.value,因为代码前面有以下行

var email = document.getElementById("email").value;

无论检查结果如何,都必须在服务器上验证结果。如果
返回false怎么办?为什么要同时发布ajax和提交表单?嘿,Pointy,这是因为我希望ajax将数据发送给Zapier,Zapier通过电子邮件发送数据,并用它做一些很酷的事情。不过,我也希望这个人被重定向到一个感谢页面。好的,我看了你的现场网站。“email”=”,而“email.value”=未定义。尝试将代码更改为:if(电子邮件==“”){