如何使用 Bootstrap 验证提交表单
How to submit form using Bootstrap Validation
我正在使用 Bootstrapvalidation 检查我的输入字段。最重要的是,我还有在提交时完成的额外检查。它要么提交时没有显示错误,要么当我使用它时:
$("#form").submit(function(ev){
ev.preventDefault();
});
$("#submit-form").on("click", function(){
var valid=some code for additional check;
if (valid) {
$("#form").submit();
}
else {
return;
}
});
但是这一切都是递归的,表单没有被提交。我如何让它工作?
参考下面的例子
<script>
$(document).ready(function() {
$('#taskForm')
.formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
task: {
validators: {
notEmpty: {
message: 'The task is required'
}
}
},
description: {
validators: {
notEmpty: {
message: 'The description is required'
}
}
}
}
})
.on('success.field.fv', function(e, data) {
if (data.fv.getInvalidFields().length > 0) { // There is invalid field
data.fv.disableSubmitButtons(true);
}
});
});
</script>
<form id="taskForm" method="post" class="form-horizontal">
<div class="form-group">
<label class="col-xs-3 control-label">Task</label>
<div class="col-xs-5">
<input type="text" class="form-control" name="task" />
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Description</label>
<div class="col-xs-5">
<textarea class="form-control" name="description" rows="5"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-xs-5 col-xs-offset-3">
<!-- Initially, the submit button is disabled -->
<button type="submit" class="btn btn-default" disabled="disabled">Submit</button>
</div>
</div>
</form>
@Harshil 的回答涵盖了 bootstrapValidation plugin which is totally a different plugin then 1000hz BootstrapValidator 插件
在您的方法中,您在第一个脚本中有 ev.preventDefault();
,这是单独的脚本并且阻止表单提交并不重要输入字段/附加检查有效或无效以及输入状态/附加检查根本没有在第一个脚本中定义有效或无效。
您需要 Conditionally handling the submit event 检查和处理 additional custom check
以及其他表单输入字段以进行验证,如果一切正常,请提交表单,
$('#form').validator().on('submit', function (e) {
if (e.isDefaultPrevented()) {
// handle the invalid form...
} else {
// everything looks good!
}
})
我正在使用 Bootstrapvalidation 检查我的输入字段。最重要的是,我还有在提交时完成的额外检查。它要么提交时没有显示错误,要么当我使用它时:
$("#form").submit(function(ev){
ev.preventDefault();
});
$("#submit-form").on("click", function(){
var valid=some code for additional check;
if (valid) {
$("#form").submit();
}
else {
return;
}
});
但是这一切都是递归的,表单没有被提交。我如何让它工作?
参考下面的例子
<script>
$(document).ready(function() {
$('#taskForm')
.formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
task: {
validators: {
notEmpty: {
message: 'The task is required'
}
}
},
description: {
validators: {
notEmpty: {
message: 'The description is required'
}
}
}
}
})
.on('success.field.fv', function(e, data) {
if (data.fv.getInvalidFields().length > 0) { // There is invalid field
data.fv.disableSubmitButtons(true);
}
});
});
</script>
<form id="taskForm" method="post" class="form-horizontal">
<div class="form-group">
<label class="col-xs-3 control-label">Task</label>
<div class="col-xs-5">
<input type="text" class="form-control" name="task" />
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Description</label>
<div class="col-xs-5">
<textarea class="form-control" name="description" rows="5"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-xs-5 col-xs-offset-3">
<!-- Initially, the submit button is disabled -->
<button type="submit" class="btn btn-default" disabled="disabled">Submit</button>
</div>
</div>
</form>
@Harshil 的回答涵盖了 bootstrapValidation plugin which is totally a different plugin then 1000hz BootstrapValidator 插件
在您的方法中,您在第一个脚本中有 ev.preventDefault();
,这是单独的脚本并且阻止表单提交并不重要输入字段/附加检查有效或无效以及输入状态/附加检查根本没有在第一个脚本中定义有效或无效。
您需要 Conditionally handling the submit event 检查和处理 additional custom check
以及其他表单输入字段以进行验证,如果一切正常,请提交表单,
$('#form').validator().on('submit', function (e) {
if (e.isDefaultPrevented()) {
// handle the invalid form...
} else {
// everything looks good!
}
})