jquery验证不使用两个表单

jquery验证不使用两个表单,jquery,jquery-validate,Jquery,Jquery Validate,我有一个简单的表单,其中a输入一个卡号,从该卡号中我从表中获取信息,在提交另一个表单之前,我想验证帐号。但是它不起作用,它忽略了验证,但是当我去掉第一个表单时,验证工作正常 我使用第一个表单从表中获取数据 制造 jQuery(函数($){ 警报(“测试”); var validator=$('#searchForm')。验证({ 规则:{ 信息测试:{ 必填项:true } }, 消息:{}, errorPlacement:函数(错误,元素){ 变量位置=$(元素).data('error')

我有一个简单的表单,其中a输入一个卡号,从该卡号中我从表中获取信息,在提交另一个表单之前,我想验证帐号。但是它不起作用,它忽略了验证,但是当我去掉第一个表单时,验证工作正常

我使用第一个表单从表中获取数据

制造


jQuery(函数($){
警报(“测试”);
var validator=$('#searchForm')。验证({
规则:{
信息测试:{
必填项:true
}
},
消息:{},
errorPlacement:函数(错误,元素){
变量位置=$(元素).data('error');
如果(安置){
$(位置).append(错误)
}否则{
错误。插入符(元素);
}
}
});
});
$(文档).on('change','input',function(){
$(this.valid();
});

根据JavaScript控制台中的错误

  • 您未能包括jQuery和jQuery验证插件

  • 您在
    info\u test
    上有
    data error=“##errNm3”
    ,并且
    #
    字符正在自定义
    errorPlacement
    函数中中断JavaScript

  • 错误:语法错误,无法识别的表达式:##errNm3

    还有

  • 您的第一个
    表中缺少关闭
    标记,这将破坏HTML。当jQuery验证插件影响
    标记的嵌套方式时,它并不总是能够很好地处理损坏的HTML结构
  • 否则,它会起作用:



    在注释部分,您提到JSFIDLE中的代码来自Coldfusion。由于您只向我们显示服务器端代码,而不是浏览器中呈现的实际HTML标记,因此第2项可能是一个没有意义的问题。无论如何,因为这是一个JavaScript问题,没有提到Coldfusion,所以我们需要看到浏览器中JavaScript引擎看到的代码。

    您没有在JSFIDLE中包含jQuery。您还未能包括jQuery验证插件。请注意控制台错误。哦,很抱歉,因为我有ColdFison的东西,我的想法是这不重要,因为在JSFIDLE中它不起作用。您在OP中提到Coldfusion的地方,为什么要构造一个JSFIDLE演示,向我们展示“不起作用”的服务器端代码?如果您需要有关JavaScript的帮助,那么只使用呈现的HTML和任何必需的JavaScript资产构建一个工作演示。但是数据错误=“##errNm3”我使用它是因为coldfusion需要它,我在其他形式中使用了它,并且可以与两个##@anatp_123配合使用-查看您的JavaScript控制台:错误:语法错误,无法识别的表达式:##errNm3“是的,这是事实,但就我而言,我的控制台上没有错误,因为我使用的是coldfusion。它不同,我有其他形式,工作正常。这些形式只有1form@anatp_123,你发布了一个带有破损JSFIDLE的问题,我修复了它。你没有提到Coldfusion。用户浏览器中的JavaScript也不关心Coldfusion。。。
    #
    字符正在破坏它,句号。它可能在JSFIDLE中破坏它,但不是我的代码,我有其他表单,我使用相同的javascript,没有错误
    <script>
    jQuery(function($) {
    alert('test');
      var validator = $('#searchForm').validate({
    
        rules: {
          info_test: {
            required: true
          }
        },
        messages: {},
    
    
        errorPlacement: function(error, element) {
          var placement = $(element).data('error');
          if (placement) {
            $(placement).append(error)
          } else {
            error.insertAfter(element);
          }
        }
      });
    });
    
    $(document).on('change','input',function(){
    $(this).valid();
    });
    </script>