我是Ajax的新手,我想将它与当前使用的联系表单一起使用。表单设置为运行JS(fieldchk())以验证require字段,然后向相应的一方发送电子邮件。
我已经正确设置了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;
}
}
答案 0 :(得分:1)
您需要在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!') }
});