1

それで、数日前に書いたコードを見ていましたが、完全に機能し、方法がまったくわかりません。あなたの一人が私を助けてくれることを望んでいました。

私の検証コードでは、いくつかの ajax リクエストを実行しています。これは、「リモート」タグを使用して行われます。これらのリクエストは、フォームに入力されたユーザー名と電子メールをサーバーに送信します。

 $("#signup-form").validate({
    rules: {
        username: {
            required: true,
            remote: {
                url: "/CheckDuplicateUsername/",
                type: "get",
                data: { 
                    username: $("#username").val()
                }
            }
        },

        email: {
            required: true,
            remote: {
                url: "/CheckDuplicateEmail/",
                type: "get",
                data: { 
                    email : $("#email").val()
                }
            }
        },
//More code

電子メール フィールドとユーザー名フィールド内の値をサーバーに送信することに注意してください。ID を使用してこれらの値を取得します。フォームのタグからこのデータを取得していると思います。それでは、HTML をお見せしましょう。ユーザー名タグとパスワード タグの ID が、上記の jQuery コードで使用されている ID とは異なることに注意してください。

<div class="fieldWrapper">

              <label for="id_username">Username: </label>
              <input id="id_username" type="text" placeholder="First Name" name="username" maxlength="30" class="valid">
           </div>

<div class="fieldWrapper">

                <label for="id_email">Email</label>
                <input id="id_email" type="text" placeholder="Email" name="email" maxlength="75">
           </div>

私の 2 つの入力タグには、それぞれ「id_username」と「id_email」という ID があります。しかし、検証コードは ID が「username」と「email」のタグを選択します。私の検証コードが正しいデータをサーバーに送信していることに注意してください。「id_username」と「id_email」に関連付けられたタグ内の値を選択するように検証コードを変更しようとすると、null 文字列がサーバーに送信されます。どうすればいいの!?

ありがとうございました!

4

1 に答える 1

3

あなたが持っているとき

rules: {
        username: {
...

nameこれは、属性 equalを持つフィールドを検証することを意味しますusernameremoteオプションを指定するdataと、追加フィールドのデータを送信するために使用できます。プラグイン ドキュメントのこの例のように:

「電子メール フィールドを必須にし、電子メールを送信し、リモート リクエストを実行して、指定されたアドレスが既に使用されているかどうかを確認します。さらに、http メソッドが「投稿」に設定され、ユーザー名が電子メール アドレスとともに送信されます。」

$("#myform").validate({
  rules: {
    email: {
      required: true,
      email: true,
      remote: {
        url: "check-email.php",
        type: "post",
        data: {
          username: function() {
            return $("#username").val();
          }
        }
      }
    }
  }
});
于 2012-09-20T00:44:49.357 に答える