验证器仅在重新编辑字段时才接受提交(包括 PHP)

Validator accepts submit only when re-editing field (include PHP)

我有一个奇怪的问题。

我的提交按钮只有在我重新编辑任何字段时才有效。 如果我按下提交按钮变为禁用。 然后我需要重新编辑日期字段(任何字段都需要验证)然后我可以提交表格。

注意:即使重新编辑任何字段,在 jsfiddle 上也不起作用(提交按钮仍然禁用)。但是重新编辑在我的项目上有效!

这是我的代码 Jsfiidle Link

$(document).ready(function() {
  $('#reportForm')
    .bootstrapValidator({
      // Only disabled elements are excluded
      // The invisible elements belonging to inactive tabs must be validated
      excluded: [':disabled'],
      feedbackIcons: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh'
      },
      fields: {
        reportStartDate: {
          validators: {
            notEmpty: {
              message: 'Please select Date'
            }
          }
        },
        reportEndDate: {
          validators: {
            notEmpty: {
              message: 'Please select Date'
            }
          }
        }
      }
    })
    // Called when a field is invalid
    .on('error.field.bv', function(e, data) {
      // data.element --> The field element

      var $tabPane = data.element.parents('.tab-pane'),
        tabId = $tabPane.attr('id');

      $('a[href="#' + tabId + '"][data-toggle="tab"]')
        .parent()
        .find('i')
        .removeClass('fa-check')
        .addClass('fa-times');
    })
    // Called when a field is valid
    .on('success.field.bv', function(e, data) {
      // data.bv      --> The BootstrapValidator instance
      // data.element --> The field element

      var $tabPane = data.element.parents('.tab-pane'),
        tabId = $tabPane.attr('id'),
        $icon = $('a[href="#' + tabId + '"][data-toggle="tab"]')
        .parent()
        .find('i')
        .removeClass('fa-check fa-times');

      // Check if the submit button is clicked
      if (data.bv.getSubmitButton()) {
        // Check if all fields in tab are valid
        var isValidTab = data.bv.isValidContainer($tabPane);
        $icon.addClass(isValidTab ? 'fa-check' : 'fa-times');
      }
    });
});

我花了半天时间终于发现 solution.The 问题是 button.Bootstrap 验证的 'name' 属性在理解是否提交表单时遇到问题!

当我使用下面的方法时,不起作用!

<button type="submit" class="btn btn-warning" name="submit" value="showReport">Show Report</button>

使用php代码

if (isset($_POST['submit']))

解决方法!

<button type="submit" class="btn btn-warning">Show Report</button>

使用php代码

($_SERVER['REQUEST_METHOD'] == 'POST')

我遇到了同样的问题,但意识到我的目标是容器 div 而不是表单标签。可能会节省一些时间。