【问题标题】:jQuery Validate not working properly inside PHPjQuery Validate 在 PHP 中无法正常工作
【发布时间】:2018-06-21 20:12:49
【问题描述】:

我正在尝试使用 jQuery Validate 验证包含在 PHP 回显语句中的表单的输入字段,但没有任何反应。代码如下:

else {
    echo 
         '<form method="post" class="cmxform" id="cadastraAtividade" action="/?action=cadastrar_ativ_ext&sub_action=gravar_banco">
            <div>
                <label>Nome da Atividade:</label><br />
                <input type="text" size="50" id="nome" name="cac_atividade_nome" value=""/>
             </div>

             <div>
                <label>Data:</label>
                <script>DateInput("cac_atividade_data", true, "YYYY/MM/DD")</script>
            </div>

            <div>
                <label>Início:</label><input id="time1" type="time" name="cac_atividade_inicio" value="" required/>
                <label>Finalização:</label> <input id="time2" type="time" name="cac_atividade_final" value="" required/><br />
            </div>

            <div>
                <label>Descrição:</label><br /><textarea name="cac_atividade_descricao" rows="10" cols="60" minlength=10 required></textarea></div><div>
                <input class="submit" type="submit" id="botao" value="Submit"/>
             </div>
         </form>

         <script src="js/jquery.min.js"></script>
         <script src="js/jquery.validate.js"></script>

         <script>
         $(#"cadastraAtividade").validate(
         {
            rules: {
                nome: {
                    required: true,
                    minlength: 10
                }
            }
        });
         </script>';
}

我只写了一条规则,从那以后我就陷入了困境。另外,我在某处读到,输入字段上的“必需”属性足以让 jQuery 验证工作,但实际上,正在工作的验证(在其他输入字段中)是 HTML5 的验证。

如何让它发挥作用?

【问题讨论】:

  • 您是否在 Javascript 控制台中遇到任何错误?
  • 再次检查您的 jQuery 选择器语法。 # 符号需要inside 引号。 $("#cadastraAtividade") 投票结束:“这个问题是由一个无法再复制的问题或一个简单的印刷错误引起的。虽然类似的问题可能是这里的主题,但这个问题是以不太可能帮助未来读者的方式解决问题。这通常可以通过在发布之前确定并仔细检查重现问题所需的最短程序来避免。"
  • 我把#放在引号里面,验证还是不行。在 Javascript 控制台上显示此错误: jquery.validate.js:428 Uncaught TypeError: $(...).on is not a function at $.validator.init (jquery.validate.js:428) at new $.validator (jquery.validate.js:241) 在 init.validate (jquery.validate.js:41) 在 ?action=cadastrar_ativ_ext:46

标签: php jquery html jquery-validate


【解决方案1】:

我觉得你的选择器不行。

尝试替换这一行:

$(#"cadastraAtividade").validate(

# 在双引号内的这一行:

$("#cadastraAtividade").validate(

$("#cadastraAtividade").validate({
  rules: {
    nome: {
      required: true,
      minlength: 10
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.17.0/dist/jquery.validate.js"></script>
<form method="post" class="cmxform" id="cadastraAtividade" action="/?action=cadastrar_ativ_ext&sub_action=gravar_banco">
  <div>
    <label>Nome da Atividade:</label><br />
    <input type="text" size="50" id="nome" name="cac_atividade_nome" value="" />
  </div>

  <div>
    <label>Data:</label>        
  </div>

  <div>
    <label>Início:</label><input id="time1" type="time" name="cac_atividade_inicio" value="" required/>
    <label>Finalização:</label> <input id="time2" type="time" name="cac_atividade_final" value="" required/><br />
  </div>

  <div>
    <label>Descrição:</label><br /><textarea name="cac_atividade_descricao" rows="10" cols="60" minlength=10 required></textarea></div>
  <div>
    <input class="submit" type="submit" id="botao" value="Submit" />
  </div>
</form>

注意:我已经从 sn-p 中删除了&lt;script&gt;DateInput("cac_atividade_data", true, "YYYY/MM/DD")&lt;/script&gt;

【讨论】:

  • 有意与否,错位 # 是一个简单的印刷错误,问题应该作为题外话关闭。
  • 我把#放在引号里面,验证还是不行。在 Javascript 控制台上显示此错误:jquery.validate.js:428 Uncaught TypeError: $(...).on is not a function at $.validator.init (jquery.validate.js:428) at new $.validator (jquery.validate.js:241) at init.validate (jquery.validate.js:41) at ?action=cadastrar_ativ_ext:46 我也尝试像您一样从表单中删除日期脚本,但问题仍然存在。
  • @DiogoEdwiges 也许this postthis post 可以提供帮助。
  • @Thefourthbird,看到你指出的帖子,我发现我使用的是旧版本的 jQuery,它与上一个 jQuery Validate 不兼容。我为 3.3.1 版本更新了 jQuery,现在它可以工作了! :D 谢谢大家的回答!
猜你喜欢
  • 2018-08-14
  • 2015-11-13
  • 2011-07-24
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 2012-07-23
相关资源
最近更新 更多