【发布时间】:2019-11-04 10:57:08
【问题描述】:
我正在使用 this 的 jQuery 验证 我正在引导程序模式上编写表单验证,但是当我点击提交按钮时它无法正常工作,它被提交而没有显示表单验证错误。我的代码如下:
$(document).ready(function () {
$('#add_section_form').validate({
rules: {
section: {
required: true
},
category: {
required: true
},
capacity: {
required: true
},
class_of_section: {
required: true
},
teacher_id: {
required: true,
}
},
messages: {
section: {
required: "The Section field is required"
},
category: {
required: "The category field is required"
},
capacity: {
required: "The capacity field is required"
},
class_of_section: {
required: "The class field is required"
},
teacher_id: {
required: "The teacher name field is required"
}
},
submitHandler: function (form) { // for demo
// alert('valid form submitted');
// return false;
form.submit();
}
});
});
我的带有表单的引导模式 - add-section-modal.php:
<!-- Modal -->
<div id="addSectionModal" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×
</button>
<h4 class="modal-title text-center">ADD SECTION</h4>
</div>
<form id="add_section_form" data-parsley-validate class="form-horizontal form-label-left" action="<?php echo base_url();?>sections/save" method="post" enctype="multipart/form-data" >
<div class="modal-body">
<div class="container">
<div class="row">
<div class='col-md-4 col-sm-12 col-xs-12 form-group'>
Section *
<input type="text" id="section" name='section' class="form-control">
</div>
<div class='col-md-4 col-sm-12 col-xs-12 form-group'>
Category *
<input type="text" id="category" name="category" class="form-control">
</div>
<div class='col-md-4 col-sm-12 col-xs-12 form-group'>
Capacity *
<input type="text" id="capacity" name="capacity" class="form-control">
</div>
<div class='col-md-4 col-sm-12 col-xs-12 form-group'>
Class
<select id="class_of_section" class="form-control" name="class_of_section">
<option value="">Choose..</option>
<option value="class1" >Class1</option>
<option value="class2" >Class2</option>
</select>
</div>
<div class='col-md-4 col-sm-12 col-xs-12 form-group'>
Teacher Name
<select id="teacher_id" class="form-control" name="teacher_id">
<option value="">Choose..</option>
<option value="teacher1" >Teacher1</option>
<option value="teacher2" >Teacher2</option>
</select>
</div>
<div class='col-md-4 col-sm-12 col-xs-12 form-group'>
Note
<textarea class="form-control" name="notes"></textarea>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-success" value="Submit">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</form>
</div>
</div>
</div>
我已将此模式代码存储在单独的文件中,并且我已将该文件包含在列表页面中,并且还将 jQuery 验证脚本包含在列表页面本身中,并且我正在使用列表页面上的添加按钮打开添加模式形式。如下:
list.php
-----------
$this->load->view('add-section-modal.php');
-----------
<script>
-----------------
My above jQuery Validation script goes here
------------------
</script>
相同的代码在其他地方运行良好。我的代码有什么问题?为什么,在这种情况下,它不能正常工作任何帮助。
【问题讨论】:
-
当 html 被转换为模式时,bootstrap 会从 HTML 中删除它并重新添加它,因此在此之前连接的所有事件都会丢失。这可能会在您的代码之后发生。显示模态时需要重新初始化验证。
-
我也试过了。请再次检查我的问题,因为我已再次更新。
-
您在上面发布的代码运行良好。 jsfiddle.net/vwud83s5/1 ~ 如果您只向我们展示有效的代码,我们将无能为力。您是否进行了任何故障排除?检查控制台是否有 JavaScript 错误?检查实时 DOM 以确保它看起来像上面那样?检查 DOM 以确保正确包含所有相关文件?有任何故障排除吗?
-
我已经检查了控制台中的错误。将一个与数据表错误相关的 javascript 显示为“jquery.dataTables.min.js:24 Uncaught TypeError: Cannot set property '_DT_CellIndex' of undefined”
-
您意识到一个 JavaScript 错误会阻止 JavaScript 的其余部分运行。
标签: javascript jquery jquery-validate