2

JSONファイルによって提供される配列に対してテキストフィールドの入力を検証するソリューションを探しています。例: 目的のユーザー名が既に存在するかどうかを登録フォーム内で確認するには。

実際の例、プラグイン、スクリプト、またはチュートリアルを手伝ってくれる人はいますか?

「usernames.json」は次のようになります...

{"usernames":["carl","jack","jill"]}

...そして...で読み上げられます

$.getJSON("usernames.json", function(names) {
var invalidName = names;

私は続けます...

jQuery.validator.addMethod

...しかし、ここから、私は立ち往生しています。

誰かが実際の例を手伝ってくれたら、とてもうれしいです!

/////////////////////////////////////////////// ///

編集: Utkanos と Pavel Staseljun のおかげで、次の解決策を見つけることができました。これは大まかにしかテストされていません! 下の Utkanos の例も参照してください。これには、「送信」の代わりに「キーアップ」処理が含まれており、「必須」チェックが含まれていないためです。「#errorresponse」は、エラー メッセージが表示される可能性のある div です。

$.ajax({
  url: "http://yoururlto.json?callback=?",
  dataType:"jsonp",
  jsonpCallback: '?',
  async: false,
  success: function(json) {
        $('#user').keyup(function(evt) {
        var jsonarray = json.usernames;
        var userinput = $('#user').val().toLowerCase()
        var check = $.inArray(userinput, jsonarray);
        if (check !== -1) {
            $("#errorresponse").text('Thanks to Utkanos and Pavel Staseljun!');
            }
        })
      }
});
4

3 に答える 3

1

HTML

<form id='signup'>
    <label>Choose a username</label>
    <input type='text' id='user' />
    <input type='submit' value='submit' />
</form>

JS / jQuery

$.getJSON("usernames.json", function(json) {
    $('#signup').on('submit', function(evt) {
        var user = $('#user').val(), error;
        if (!user)
            error = 'no username entered';
        else if (json.usernames.indexOf(user) != -1)
            error = 'username already taken';
        if (error) { evt.preventDefault(); alert(error); }
    });
});
于 2012-07-31T09:31:43.010 に答える
0

サーバーからクライアントにすべてのユーザー名を送信するのはなぜですか?これはかなり悪い考えのように聞こえます。投稿されたユーザー名をチェックし、有効または無効の場合はtrueまたはfalseを返すサーバー側関数のようなことをしてください。

于 2012-07-31T09:33:32.517 に答える
0

ユーザー名が存在するかどうかを確認するajaxスクリプトを作成できません

リモートオプションを使用してjqueryバリデーターと直接統合できるため、はるかに優れたimoです。

于 2012-07-31T09:33:42.477 に答える