1

私はこのようなフォームを持っています

<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>

ユーザーを更新する場合、フォーム ID は「edit_user」になります。フォーム ID に「new」が含まれている場合にのみ、user_email にルールを追加したいと考えています。私はこのようにしようとしました:

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

しかし、編集フォームを使用すると、「要素が未定義です」というエラーが発生します。これは、user_email がどこにも見つからないため正常です。

それを行う正しい方法は何ですか?

4

2 に答える 2

0

これだけ試してみてください

$("#user_email").rules("add", {
         remote: {
             url: "check_email",
             type: "post"
         },
         messages: {
             remote: "There is already a user with this email address!"
         }
        });
    });
于 2013-01-22T10:01:19.783 に答える
0

ルールを作成する前に、必要なフォームと要素が存在するかどうかを確認してください。

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!"
      }
    });
}
于 2013-01-22T17:00:19.480 に答える