【发布时间】:2013-09-30 15:54:31
【问题描述】:
我很难找到一个很好的解决方案来验证两个选项卡上的两个不同表单。我希望两者都可以有效地发布数据。我正在为选项卡和 jquery 验证使用引导框架。
示例如下:http://jsfiddle.net/SLsde/
HTML
<div class="container">
<ul class="nav nav-pills" id="tabs">
<li class="active"><a href="#tab1" data-toggle="pill">Tab 1</a></li>
<li><a href="#tab2" data-toggle="pill">Tab 2</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
<form class="form" id="form1">
<div class="form-group">
<label>Input 1</label>
<input id="input1" name="input1" type="text" class="form-control" />
</div>
<input id="Submit1" type="submit" class="btn btn-primary" value="Submit" />
</form>
</div>
<div class="tab-pane" id="tab2">
<form class="form" id="form2">
<div class="form-group">
<label>Input 2</label>
<input id="input2" name="input2" type="text" class="form-control" />
</div>
<input id="Submit2" type="submit" class="btn btn-primary" value="Submit" />
</form>
</div>
</div>
</div>
JS
var form1 = $("#form1").validate({
ignore: '',
rules: {
"input1": "required"
}
});
var form2 = $("#form2").validate({
ignore: '',
rules: {
"input2": "required"
}
});
$("#form1").submit(function (e) {
e.preventDefault();
if (form1.valid() && form2.valid()) {
alert("Post Data");
} else {
alert("Not Valid");
}
});
$("#form2").submit(function (e) {
e.preventDefault();
if (form1.valid() && form2.valid()) {
alert("Post Data");
} else {
alert("Not Valid");
}
});
如果您尝试在一个选项卡上提交,而另一个选项卡上没有数据,它仍然会说它是有效的。 如果您提交时为空,则转到其他选项卡提交,然后将显示为 false。我尝试使用许多人建议的 ignore: '' 东西,但我在每个选项卡上都找不到很多表单示例。
任何想法都会有所帮助。
【问题讨论】:
标签: jquery twitter-bootstrap jquery-validate