HTML5验证前阿贾克斯提交 [英] HTML5 validation before ajax submit
本文介绍了HTML5验证前阿贾克斯提交的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这应该是简单的,但它的驾驶我疯了。我有我使用Ajax提交一个HTML5的形式。如果输入的值无效,有一个弹出式的反应,告诉你。我该如何检查条目之前,我跑我的AJAX提交有效?
形式:
<形式ID =联系形式的onsubmit =返回false;>
<标签=名与GT;名称:< /标签>
<输入类型=文本名称=名称ID =必需的名称占位符=名称/>
<标签=主题>主题:< /标签>
<输入类型=文本名称=主题ID =主题要求的占位符=主题/>
<标签=电子邮件>电子邮件:LT; /标签>
<输入类型=电子邮件NAME =电子邮件id必=电子邮件占位符=email@example.com/>
<标签=消息>消息:< /标签>
< textarea的名字=消息ID =消息需要>< / textarea的>
<输入类型=提交ID =提交/>
< /形式GT;
提交:
$('#提交)。点击(函数(){
变种名称= $(#输入名称)VAL()。
。无功受= $(#投入主体)VAL();
变种的电子邮件= $(#输入电子邮件)VAL()。
VAR消息= $(#的输入信息)VAL()。
VAR dataString ='邮件='+电子邮件+'和;消息='+信息+'和受试者='+主语+'和;名称='+名;
$阿贾克斯({
网址:脚本/ mail.php
键入:POST,
数据:dataString,
成功:函数(MSG){
disablePopupContact();
$(#popupMessageSent)的CSS(知名度,可见)。
},
错误:函数(){
警报(坏提交);
}
});
});
解决方案
在默认情况下,jQuery的不知道的HTML5验证的东西,所以你必须做一些事情,如:
$('#提交)。点击(函数(){
如果($(形式)[0] .checkValidity()){
//表单执行code
}其他的console.log(无效的表);
});
This should be simple, yet it's driving me crazy. I have an html5 form that I am submitting with ajax. If you enter an invalid value, there is a popup response that tells you so. How can I check that the entries are valid before I run my ajax submit?
form:
<form id="contactForm" onsubmit="return false;">
<label for="name">Name:</label>
<input type="text" name="name" id="name" required placeholder="Name" />
<label for="subject">Subject:</label>
<input type="text" name="subject" id="subject" required placeholder="Subject" />
<label for="email">Email:</label>
<input type="email" name="email" id="email" required placeholder="email@example.com" />
<label for="message">Message:</label>
<textarea name="message" id="message" required></textarea>
<input type="submit" id="submit"/>
</form>
submit:
$('#submit').click(function(){
var name = $("input#name").val();
var subject = $("input#subject").val();
var email = $("input#email").val();
var message = $("input#message").val();
var dataString = 'email=' + email + '&message=' + message + '&subject=' + subject + '&name=' + name ;
$.ajax({
url: "scripts/mail.php",
type: 'POST',
data: dataString,
success: function(msg){
disablePopupContact();
$("#popupMessageSent").css("visibility", "visible");
},
error: function() {
alert("Bad submit");
}
});
});
解决方案
By default, jQuery doesn't know anything about the HTML5 validation, so you'd have to do something like:
$('#submit').click(function(){
if($("form")[0].checkValidity()) {
//your form execution code
}else console.log("invalid form");
});
这篇关于HTML5验证前阿贾克斯提交的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文