Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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
Javascript validationEngine(';validate';)不是函数_Javascript_Jquery_Forms_Jquery Validation Engine - Fatal编程技术网

Javascript validationEngine(';validate';)不是函数

Javascript validationEngine(';validate';)不是函数,javascript,jquery,forms,jquery-validation-engine,Javascript,Jquery,Forms,Jquery Validation Engine,我有一个简单的表单,我想知道表单是否处于有效状态 该项目正在使用 我使用的是相同的版本2.6.2 根据文档,它支持一个函数validationEngine('validate'),该函数根据表单的状态返回true或false 我一直收到错误TypeError:$(…)。validationEngine不是一个函数 但奇怪的是,表单会根据需要抛出验证错误 我确实检查了validationEngine插件是否在jquery之后和触发调用的js文件之前加载。表单选择器也是正确的 表格: <f

我有一个简单的表单,我想知道表单是否处于有效状态

该项目正在使用

我使用的是相同的版本2.6.2

根据文档,它支持一个函数
validationEngine('validate')
,该函数根据表单的状态返回true或false

我一直收到错误
TypeError:$(…)。validationEngine不是一个函数
但奇怪的是,表单会根据需要抛出验证错误

我确实检查了validationEngine插件是否在jquery之后和触发调用的js文件之前加载。表单选择器也是正确的

表格:

  <form name="editProfileForm" method="post" action="#" class="epf" id="editDiaryForm" style="display:none;">

        <a href="javascript:void(0)" onclick="toggleCancel(this,'addPlay');$('#editDiaryForm')[0].reset();;" class="pull-right action-link">Cancel</a> 
        <a href="javascript:void(0)" onclick="submitDiary('#editDiaryForm');" class="pull-right action-link">Save </a>
        <input class="form-control validate[required, ajax[ajaxDiaryCall]]" name="title" id="title" type="text"/>
        <textarea class="form-control validate[required]" name="playdiary" id="playdiary"></textarea>

        <input type="hidden" name="Edit" value="playdiary" />
      </form>
 $(document).ready(function(){
      $("#editDiaryForm").validationEngine('attach'); 
        //This throws true
        console.log($('#editDiaryForm').validationEngine('validate')); 
    });
提交功能

  function submitDiary(formid)
    {
      $(formid).bind('submit' , function(e){
        e.preventDefault();
        // Gives me the expected value
        console.log('Submiting Form - '+ formid);
        //Throws me an error here if commited
        $(formid).validationEngine();
        submit = false;
        //Gets stuck here
        if(submit == false && $(formid).validationEngine('validate') == true)
        {
          submit=true;
          $.ajax({
            url: url+'diary/save',
            async: false,
            type: "post",
            data: $(formid).serialize(),
            success: function (data) {
              if(data==true)
              {
                $('#diaries').prepend(data);
              }
              else
              {
                custom_page_msg('Something Went Wrong. Please Login to your account again to complete the action.');
              }
              submit = false;
            }
          });
        }

      });

      $(formid).submit();
 }
脚本顺序

<script src="<?php echo base_url()?>js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="<?php echo base_url('js'); ?>/bootstrap.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

<script src="<?php echo base_url('js/languages'); ?>/jquery.validationEngine-en.js"></script>
<script src="<?php echo base_url('js'); ?>/jquery.validationEngine.js"></script>
<script src="<?php echo base_url('js'); ?>/jquery.customSelect.min.js"></script> 

<script src="<?php echo base_url('js'); ?>/scripts.js"></script>
<script src="<?php echo base_url('js'); ?>/other-validation.js"></script>
<script src="<?php echo base_url('js'); ?>/dropzone.js"></script>
<script src="<?php echo base_url('js'); ?>/global.js"></script>

好的问题是,当jQuery没有准备好时,您试图调用一些函数,这是进行同步的最佳时机。进程只需在按钮上绑定click事件,然后单击即可处理所有数据

下面我有一个简单的例子,它是有效的

$(函数(){
$(“#编辑日志格式”).validationEngine('attach');
log(“这里是validationEngine的类型:”,typeof$(“#editDiaryForm”).validationEngine);
$('#test').bind('click',函数(e){
e、 预防默认值();
$(this).parent('form').validationEngine('validate');
});
});

好的问题是,当jQuery没有准备好时,您试图调用一些函数,这是进行同步的最佳时机。进程只需在按钮上绑定click事件,然后单击即可处理所有数据

下面我有一个简单的例子,它是有效的

$(函数(){
$(“#编辑日志格式”).validationEngine('attach');
log(“这里是validationEngine的类型:”,typeof$(“#editDiaryForm”).validationEngine);
$('#test').bind('click',函数(e){
e、 预防默认值();
$(this).parent('form').validationEngine('validate');
});
});


@种族灭绝\u恶作剧我编辑了这篇文章,这应该行得通,所以只需更改您调用请求的乳清即可。我已更新了我的提交功能。请看一看。不,这行不通,我是如何告诉你的onclick=“”将异步传播的。试着设置一些ID,然后用jQuery绑定一个点击事件,就像在我的示例中一样,让我知道会发生什么问题,我不能这样做,因为表单是在一个循环中创建的,每个循环都有一个与循环计数器关联的ID。因此,我需要一种方法,通过对象的帮助来创建整个操作。我看没有理由它不起作用。除此之外,我还尝试手动用实际id替换formid,这与我编辑的文章中的相同问题。@u Hoax这应该可以工作,所以只需更改您调用请求的乳清即可。我已经更新了我的提交功能。请看一看。不,这行不通,我是如何告诉你的onclick=“”将异步传播的。试着设置一些ID,然后用jQuery绑定一个点击事件,就像在我的示例中一样,让我知道会发生什么问题,我不能这样做,因为表单是在一个循环中创建的,每个循环都有一个与循环计数器关联的ID。因此,我需要一种方法,通过对象的帮助来创建整个操作。我看没有理由它不起作用。除此之外,我还尝试手动将formid替换为实际id,同样的问题。