首页 > 解决方案 > 无法使用 jQuery 验证器验证动态输入?

问题描述

我已经阅读了关于这个问题的大部分问题,但直到现在还不能让它工作,两天了,我有这个表格

<form id="mr_project_form" class="post" role="form">
    <label class="fre-field-title" for="fre-project-title">Your project title</label>
    <input class="input-item text-field" id="fre-project-title" type="text" name="post_title" placeholder="Add more than 15 characters"/>
    <!--Submit button-->
</form>

我可以在这里的输入元素上应用验证器,就像这样

$( "#mr_project_form" ).validate();

然后在AJAX调用AJAX响应注入的输入之后,表单将是这样的

<form id="mr_project_form" class="post" role="form">
    <label class="fre-field-title" for="fre-project-title">Your project title</label>
    <input class="input-item text-field" id="fre-project-title" type="text" name="post_title" placeholder="Add more than 15 characters"/>

    <!--Inserted input-->
    <input class="input-item text-field" id="inserted_input" type="text" name="inserted_input"/>
    <!--Submit button-->
</form>

正如#22287410#18022224中提到的,我应该在添加元素之后添加规则,所以在 ajax 成功中我添加了这样的规则

$.ajax({
  url: mr_ajax_url,
  type: "POST",
  data: dataString,
  success: function (response) {
    $("#" + insertLcation).html(response);
    $('#inserted_input').rules('add', { digit: true, });
  },
});

但它无法验证,我在页面加载时收到此错误

TypeError: t.validator.methods[a] 未定义;无法访问其“调用”属性

类型错误:s 未定义;无法访问其“表单”属性

标签: javascriptjqueryjquery-validate

解决方案


digitss,不是digit

$('#inserted_input').rules('add', { digits: true, });

推荐阅读