jQuery验证:仅当表单id包含文本时才将规则应用于输入

jQuery验证:仅当表单id包含文本时才将规则应用于输入,jquery,validation,Jquery,Validation,我有一张这样的表格 <form id="new_user" action="users"> <input id="user_email" class="string email required span5 valid" type="text" value="nicolas@demoreau.be" size="80" placeholder="user@domain.com" name="user[email]"> </form> 但是当

我有一张这样的表格

<form id="new_user" action="users">
  <input  id="user_email" class="string email required span5 valid" type="text"    
  value="nicolas@demoreau.be" size="80" placeholder="user@domain.com" name="user[email]">
</form>
但是当我使用编辑表单时,这会产生一个错误:元素未定义,这是正常的,因为它在任何地方都找不到用户的电子邮件

正确的方法是什么?

试试这个

$("#user_email").rules("add", {
         remote: {
             url: "check_email",
             type: "post"
         },
         messages: {
             remote: "There is already a user with this email address!"
         }
        });
    });

在创建规则之前,请检查所需的表单和元素是否存在

if ($("form[id*=new][data-validate=true]").find("#user_email").length > 0){
    $('#user_email').rules("add", {
      remote: {
        url: "check_email",
        type: "post"
      },
      messages: {
        remote: "There is already a user with this email address!"
      }
    });
}

如果我的表单id中有edit,这也是我试图避免的:我只想在表单id中有new的情况下添加此规则。Thx!
if ($("form[id*=new][data-validate=true]").find("#user_email").length > 0){
    $('#user_email').rules("add", {
      remote: {
        url: "check_email",
        type: "post"
      },
      messages: {
        remote: "There is already a user with this email address!"
      }
    });
}