2

jQuery検証プラグインを使用してフォームを検証しようとしていますが、name属性を使用する機能を完全に削除する必要があります。フォームの一部は、増分されるカウンターに基づいて動的に作成され、クラスのみを使用したいだけです。

これを行う方法はありますか?

addClassRulesメソッドを実装し、各フィールドにすべてのクラスを追加しましたが、フィールドからクラスを削除しても、名前フィールドに基づいて検証されます。

これは本当にイライラし始めています。

jQuery.validator.addClassRules({
    username: { 
        required: true, 
        minlength: 2, 
        remote: "whatever.php" 
    }
});

<div class="control-group">
    <label class="control-label" for="username">
        <?php echo $entry_username; ?>
    </label>
    <div class="controls">
        <input type="text" class="input-large" 
               name="username" id="username" 
               value="<?php echo $username; ?>" required>
    </div>
</div>

ご覧のとおり、この要素にはユーザー名のクラスがありませんが、クラスが存在しない場合、検証はname属性を使用するようにフォールバックします。

検証のためだけにクラスを使用したい。

ありがとう。

4

3 に答える 3

4

組み込みのrules()メソッドを使用してルールを追加し、によって割り当てますclassドキュメントを参照してください。

注:を呼び出した後、このメソッドを呼び出す必要があります。.validate()

ユーザーが動的にフィールドを追加できる非常に大きなフォームがあります。これは、新しく作成したフィールドも検証の一部であることを確認するために使用する正確な方法です。

class(からを削除すると、属性はオプションまたはルール内のどこでも使用されないため、属性で検証されません(できません)inputnamename.validate()

HTML:

<form id="form">
    <input type="text" class="myclass" name="whatever" />
</form>

jQuery:

$("#form").validate({
    // my options
});

// the following method must come AFTER .validate()
$('#form').find('.myclass').each(function() {
    $(this).rules('add', {
        required: true,
        minlength: 5,
        messages: {
            required: "Required input",
            minlength: jQuery.format("At least {0} characters are necessary")
        }
    });
});

jsFiddleデモ

于 2012-12-17T06:26:56.463 に答える
-1
  1. ソースをダウンロードするだけです。たとえば、http: //ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.jsをダウンロードしてから、
  2. 単語の検索置換を実行し、次のnameような別の属性に置き換えますvalidate_on
  3. 古いソースの代わりにその新しいソースを使用してください。
于 2012-12-06T01:51:31.767 に答える
-1

検証のためだけに特定のクラス名を使用するとどうなりますか?とは違うものはname

例:(validatable-usernameそれほど長くする必要はありませんが、私の考えはわかります)

その後、名前にフォールバックすることはできません。

于 2012-12-06T02:05:27.067 に答える