[英]Combine Validation (js), submit (php) and modal (bootstrap) in form
我正在使用Bootstrap創建一個簡單的聯系表單,並且在按下“提交”按鈕時想要實現以下目的:
知道我的PHP和JS知識低於平均水平,我很高興地說我能夠使所有項目分開工作,但我無法將它們組合在一起...
你能給我一些意見嗎?
驗證用途:
var validator = $("#contact").validate({
...
PHP用途:
mail()
都可以通過以下按鈕提交表單:
<button type="submit" name="submit" id="submitButton" class="btn btn-bcome pull-right">Send</button>
要激活對話框,我將按鈕更改為:
<button href="#submit" role="button" button type="submit" name="submit" id="submitButton" class="btn btn-bcome pull-right" data-toggle="modal">Send</button>
這樣可以使模態正確顯示,但不會進行驗證和提交。
我發現了一個相關的文章: jQuery Modal出現在表單提交中 。 但是我不知道如何專門針對我的情況。
我試圖適應您告訴我的內容,這就是我得到的:HTML部分:
button href="#submit" role="button" button type="submit" name="submit" id="submitButton" class="btn btn-bcome pull-right" data-toggle="modal">Envoyer</button>
和
<div id="submit" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Thanks for your mail</h3>
</div>
<div class="modal-body">
<p>We will get back to you soon</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div>
在我的JS文件中:
var $validator = {};
$(document).ready(function()
{
// validate signup form on keyup and submit
var validator = $("#contact").validate({
submitHandler: function(form)
{
//code to submit your form here
//code to open your modal here
errorClass:'error',
validClass:'success',
errorElement:'span',
highlight: function (element, errorClass, validClass) {
$(element).parents("div[class='clearfix']").addClass(errorClass).removeClass(validClass);
},
unhighlight: function (element, errorClass, validClass) {
$(element).parents(".error").removeClass(errorClass).addClass(validClass);
},
rules: {
fname: {
required: true,
minlength: 2
},
name: {
required: true,
minlength: 2
},
email: {
required: true,
email: true
},
message: {
required: true,
minlength: 10
}
},
messages: {
fname: {
required: '<span class="help-inline">First name.</span>',
minlength: jQuery.format('<span class="help-inline">2 chars</span>')
},
name: {
required: '<span class="help-inline">Name.</span>',
minlength: jQuery.format('<span class="help-inline">2 chars</span>')
},
email: {
required: '<span class="help-inline">Email.</span>',
email: '<span class="help-inline">Ex : name@exemple.com</span>'
},
message: {
required: '<span class="help-block">Message</span>',
minlength: jQuery.format('<span class="help-block">10 chars</span>')
$('form').submit(function() {
if ($validator.numberOfInvalids() > 0) {
$('#submit').modal('hide');
} else {
$('#submit').modal('show');
}
}
});
}
);
我肯定會丟失一些東西,但目前僅執行模態部分,而不執行驗證部分或提交表單部分。
知道我應該怎么做才能使這項工作嗎?
如果您使用的是bassastance的jquery驗證插件,那么您將在此處定義的submitHandler選項中查找: http ://docs.jquery.com/Plugins/Validation/validate#toptions
$(document).ready(function()
{
// validate signup form on keyup and submit
var validator = $("#contact").validate({
submitHandler: function(form)
{
//code to submit your form here
//code to open your modal here
}
});
}
);
更新:我正在根據弗雷德提供的更多代碼來更新此答案。
Javascript:
var $validator; //declared for further use later
$(document).ready(function()
{
// validate signup form on keyup and submit
$validator = $("#contact").validate({
errorClass:'error',
validClass:'success',
errorElement:'span',
highlight: function (element, errorClass, validClass) {
$(element).parents("div[class='clearfix']").addClass(errorClass).removeClass(validClass);
},
unhighlight: function (element, errorClass, validClass) {
$(element).parents(".error").removeClass(errorClass).addClass(validClass);
},
rules: {
fname: {
required: true,
minlength: 2
},
name: {
required: true,
minlength: 2
},
email: {
required: true,
email: true
},
message: {
required: true,
minlength: 10
}
},
messages: {
fname: {
required: '<span class="help-inline">First name.</span>',
minlength: jQuery.format('<span class="help-inline">2 chars</span>')
},
name: {
required: '<span class="help-inline">Name.</span>',
minlength: jQuery.format('<span class="help-inline">2 chars</span>')
},
email: {
required: '<span class="help-inline">Email.</span>',
email: '<span class="help-inline">Ex : name@exemple.com</span>'
},
message: {
required: '<span class="help-block">Message</span>',
minlength: jQuery.format('<span class="help-block">10 chars</span>')
}
},
submitHandler: function(form) //submitHandler is an option taken by the validate function
{
//i put your submission code in here
$('form').submit(function() {
if ($validator.numberOfInvalids() > 0)
{
$('#submit').modal('hide');
} else
{
$('#submit').modal('show');
}
});
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.