即使存在验证错误,表单也会提交。如果出现验证错误,如何禁用提交按钮?这是.js文件
,submitFu:function(){
_.validateFu(_.labels)
if(!_.form.has('.'+_.invalidCl).length)
$.ajax({
type: "POST",
url:_.mailHandlerURL,
data:{
name:_.getValFromLabel($('.name',_.form)),
email:_.getValFromLabel($('.email',_.form)),
phone:_.getValFromLabel($('.phone',_.form)),
//fax:_.getValFromLabel($('.fax',_.form)),
//state:_.getValFromLabel($('.state',_.form)),
message:_.getValFromLabel($('.message',_.form)),
owner_email:_.ownerEmail,
stripHTML:_.stripHTML
},
success: function(){
_.showFu()
}
})
},
showFu:function(){
_.success.slideDown(function(){
setTimeout(function(){
_.success.slideUp()
_.form.trigger('reset')
},_.successShow)
})
},
以下是表格:
<form id="contact-form" action="contactTq.php" method="post">
<div class="success"> Contact form submitted! <strong>We will be in touch soon.</strong></div>
<fieldset>
<label class="name">
<input type="text" name="name" value="Enter Your Name:" >
<span class="error">*This is not a valid name.</span>
<span class="empty">*This field is required.</span>
<span class="clear"></span>
</label>
<label class="email">
<input type="text" name="email" value="Enter Your E-mail:">
<span class="error">*This is not a valid email address.</span>
<span class="empty">*This field is required.</span>
<span class="clear"></span>
</label>
<label class="phone">
<input type="text" name="phone" value="Enter Your Phone (optional):">
<span class="error">*This is not a valid phone number.</span>
<span class="clear"></span>
</label>
<label class="message">
<textarea name="msg">Enter Your Message:</textarea>
<span class="error">*The message is too short.</span>
<span class="empty">*This field is required.</span>
<span class="clear"></span>
</label>
<div class="buttons"><strong><a class="button" data-type="reset">Reset<span></span></a></strong><strong><a class="button" data-type="submit" href="javascript:{}" onclick="document.getElementById('contact-form').submit();">Submit<span></span></a></strong></div>
</fieldset>
</form>
答案 0 :(得分:0)
Knockout.js能够完美地完成你正在寻找的东西。您可以将现有的javascript放入ViewModel,然后在按钮上放置数据绑定,以便在所有字段都验证时启用。您可以在此处查看如何执行此操作:http://knockoutjs.com/documentation/enable-binding.html
答案 1 :(得分:0)
单击按钮后,您似乎正在提交表单,因为onclick处理程序编写如下:
onclick="document.getElementById('contact-form').submit();"
只需更改onclick处理程序即可执行submitFu
函数,这应该可以解决问题。
答案 2 :(得分:0)
将提交按钮的onclick事件更改为 onclick =“return submitFu()”
如果验证失败,则返回false,表单将不会提交。我认为您可以对表单的onsubmit事件执行相同的操作。