javascript - 尽管验证失败,仍通过 AJAX 提交表单

标签 javascript jquery ajax forms

我是 Ajax 新手,我想将其与当前正在使用的联系表单一起使用。该表单设置为运行 JS (fieldchk()) 来验证所需字段,然后向相应方发送电子邮件。

我已正确设置 Ajax,发送电子邮件并在同一页面上显示一条消息:

$('form').on('submit', function(event) {
    event.preventDefault();
    return fieldchk();
    var url = $(this).attr('action');
    var formData = $(this).serialize();
        $.post(url, formData, function(response){
            $('#feedback_form').html("<p>Thanks for contacting us!</p>");
        });
});

编辑:现在表单已得到验证,如果有效,则不会发送电子邮件。验证现在可以正常工作。

这是我的表单代码:

<form 
    name="feedback" 
    action="feedbackact.cfm?type=feedback" 
    method="post"  
    enctype="multipart/form-data"
>

这是我用来验证表单的代码:

function fieldchk() {
    errmsg = '';
    if (document.feedback.name.value == ''){
        errmsg = errmsg + 'You must enter your name.\n';
    }

    ... all the fields get checked like this ...

    if (errmsg > ''){
        alert(errmsg);
        return false;
    }
}

最佳答案

您需要在 JavaScript 函数中添加某种类型的验证。我会修改标记

<form 
    name="feedback" 
    action="feedbackact.cfm?type=feedback" 
    method="post"
    enctype="multipart/form-data"
>

您不需要 onsubmit,因为事件监听器已经在监听表单名称。我假设 Feedbackact.cfm 页面决定表单是否有效?如果是这种情况,您可能需要将表单值传递给 Coldfusion。

但是我会采取不同的做法:

HTML:

<form name='feedback'><!--inputs--></form>

JavaScript:
$('form[name="feedback"]').on('submit', function() {

    var formData = this.serializeArray();

    if ( fieldcheck( formData) ) { //verifying the form data is correct

        $.post(); //post data

        Coldfusion.navigate("feedbackact.cfm?type=feedback");

    }

    else { alert('not filled out correctly!') }

});

关于javascript - 尽管验证失败,仍通过 AJAX 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941618/

相关文章:

jquery - 获取多个ajax请求的总数

php - Ajax 在 for 循环中同时执行所有操作

javascript - 删除动态添加的复选框和相应的图像

jquery - CSS 中的溢出属性

javascript - 如何在移动设备中滚动时隐藏水平滚动条

javascript - 在 Ajax 调用上发送输入数据并在 php 文件中进行处理

javascript - 如何在javascript中通过json解析关联数组

javascript - 如何将误差线添加到 nvd3.js 图表中的折线图

javascript - 如何删除页面中的所有脚本,甚至是附加到事件和计时器的脚本?

javascript - 单击时显示子 Div