【问题标题】:Form not validating inside modal popup when using jquery validator in laravel在 laravel 中使用 jquery 验证器时,表单未在模式弹出窗口内验证
【发布时间】:2020-07-01 17:43:24
【问题描述】:

我有一个表单,它在放置在页面上时正在验证,但是当我将它移动到引导模式时,它没有验证并且表单正在重新加载。某些字段将动态添加到模式中,这就是我在内部使用它的原因foreach 循环来验证动态元素。问题是当我按下提交按钮时它正在关闭。

脚本:

<script>
  $('form#frmaddclass').on('submit', function(event) {
    $('.form-control').each(function() {
  
        $(this).rules("add", 
            {
                required: true,
               
            });
    });
   });

   $("#frmaddclass").validate();
</script>

HTML:

{{  Form::open(array('route' => 'add-class','class'=>'addclass','id'=>'frmaddclass')) }}   
                        <div class="modal-body">
                         {{ Form::text('class_name','',['class'=>'form-control','placeholder'=>'Class Name','id'=>'class_name']) }}
  
                        </div>
                        <div class="modal-footer">
                            <button type="submit" class="btn btn-link waves-effect btnaddclass">SAVE CHANGES</button>
                            <button type="button" class="btn btn-link waves-effect" data-dismiss="modal">CLOSE</button>
                        </div>
{{ Form::close()}} 

弹出框中的验证消息:

【问题讨论】:

  • 向我们展示实际呈现的表单 HTML,而不是 Laravel 代码。
  • 按下按钮时弹出关闭与 jQuery Validate 无关。验证插件正在验证或者不是......它无法控制您的弹出窗口。

标签: javascript jquery jquery-validate


【解决方案1】:

不需要提交处理程序。如果表单的 HTML 标记存在于 DOM 中,则在页面加载时调用 .rules() 方法。请记住,在调用 .rules('add') 之前,您应该已经调用了 .validate()

<script>
    $(function() {  // ready event handler

        $("#frmaddclass").validate();  // initialize plugin

        $('.form-control').each(function() {  // dynamically add the rules
            $(this).rules("add", {
                required: true,   
            });
        });

    });
</script>

但是,由于您只是将required 规则添加到所有内容,因此实际上不需要.rules('add') 方法。只需将required 属性放在标记中,jQuery Validate 方法就会自动选择它。

【讨论】:

  • 谢谢,现在我在弹出窗口中收到验证消息,但我希望它在每个字段下方,就像通常的 jquery 验证器一样,以简单文本进行验证。
  • @user3653474,弹出框提示是 HTML5 浏览器验证。这意味着您的 jQuery 验证已损坏。请在您的 OP 中包含更完整的演示,以便我们了解您做错了什么。
  • 我在上面的问题中添加了运行示例,我认为这是因为我的字段是在模态中动态添加的,在示例中我动态添加了一个字段但它没有验证。请点击加载输入按钮进行检查。
  • @user3653474,您的 OP 中没有工作示例...您甚至没有向我们展示呈现的 HTML 标记。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 2018-09-18
相关资源
最近更新 更多