Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 欧芹表单在第一次提交时总是无法验证_Jquery_Forms_Validation_Parsley.js - Fatal编程技术网

Jquery 欧芹表单在第一次提交时总是无法验证

Jquery 欧芹表单在第一次提交时总是无法验证,jquery,forms,validation,parsley.js,Jquery,Forms,Validation,Parsley.js,我有一个表格,我正试图用欧芹验证它,如下所示: $('form#captainRegistrationForm').on('submit', function() { var $this; $this = $(this); if ($this.parsley('validate')) { console.log('yes'); } else { console.log('no'); } return false; }); // bind parsley

我有一个表格,我正试图用欧芹验证它,如下所示:

$('form#captainRegistrationForm').on('submit', function() {
  var $this;
  $this = $(this);
  if ($this.parsley('validate')) {
    console.log('yes');
  } else {
    console.log('no');
  }
  return false;
});
// bind parsley to form
$('form#captainRegistrationForm').parsley();

// on form submit, validate the form
$('form#captainRegistrationForm').on('submit', function(e) {
    var $this;
    $this = $(this);
    if ($this.parsley('validate')) {
        console.log('yes');
    } else {
        console.log('no');
    }

    e.preventDefault();
    return false;
});
意外行为:

在第一次提交时,控制台总是返回
no
(无论表单是否有效)。第二次提交时,它返回
yes
(如果表单有效)

在第二次提交后,我故意将表单弄错,但在第三次提交时,控制台返回
yes
。只有在我再次按下submit后,它才会返回
no


有没有可靠的方法用欧芹来验证表格?我用的是欧芹2.0.2版,有点迟了

但是,在提交之前,您没有将欧芹绑定到表单。你应该这样做:

$('form#captainRegistrationForm').on('submit', function() {
  var $this;
  $this = $(this);
  if ($this.parsley('validate')) {
    console.log('yes');
  } else {
    console.log('no');
  }
  return false;
});
// bind parsley to form
$('form#captainRegistrationForm').parsley();

// on form submit, validate the form
$('form#captainRegistrationForm').on('submit', function(e) {
    var $this;
    $this = $(this);
    if ($this.parsley('validate')) {
        console.log('yes');
    } else {
        console.log('no');
    }

    e.preventDefault();
    return false;
});

假设表单存在,您应该对此没有问题。

现在我还没有说这已经解决了,我用
if($this.parsley().validate())
解决了我的问题(即使我在提交时这样做,但我必须在html上插入
数据parsley validate