0

これら2つのフィールドのうちの任意のフィールドを検証したい(空白を許可しない)!ここからいくつかのアイデアを得ましたが、1.9.1バージョンでは実装できません。

両方のフィールドが検証されていても、それは問題ありません。任意の入力.....みんな

これが私のjqueryです

    jQuery.validator.addMethod("require_from_group", function(value, element, options) {
    alert("xxx");
    var valid = $(options[1], element.form).filter(function() {
        return $(this).val();
    }).length >= options[0];

    if(!$(element).data('reval')) {
        var fields = $(options[1], element.form);
        fields.data('reval', true).valid();
        fields.data('reval', false);
    }
    return valid;
}, jQuery.format("'Please enter either username/ email address to recover password'/Please fill out at least {0} of these fields."));

$("#forgot_pass_form").validate({
    rules: {
        uname: { require_from_group: [1,".send_username"] },
        email: { require_from_group: [1,".send_password"] }
    }
});

そしてここに私のhtmlがあります

<form action="#" class="send_form" id="forgot_pass_form" method="POST">
                <fieldset>
                    <div class="send_row">
                        <label class="padding-top10">Email</label>
                        <input type="text" class="send_email" id="email" name="email" />
                        <em>You need to type an email address</em>
                    </div>

                    <div class="send_row option">OR</div>

                    <div class="send_row">
                        <label class="padding-top10">Username</label>
                        <input type="text" class="send_username" id="uname" name="uname" />
                    </div>


                    <div class="send_row send_submitforgotuser">
                        <input type="submit" value="Submit" />
                    </div>
                </fieldset>
                </form>

これらの2つの空白のフィールドのうちの任意のフィールドを検証したいだけです。

4

1 に答える 1

0

各入力に minlength プロパティを追加します。minlength 1 を追加すると、空白にすることはできません。クラス「email」を追加すると、メールアドレスが検証されます。

HTML

<form action="#" class="send_form" id="forgot_pass_form" method="POST">
    <fieldset>
        <div class="send_row">
            <label class="padding-top10">Email</label>
            <input type="text" class="send_email email" id="email" name="email" />
            <em>You need to type an email address</em>
        </div>

        <div class="send_row option">OR</div>

        <div class="send_row">
            <label class="padding-top10">Username</label>
            <input type="text" class="send_username" id="uname" name="uname" minlength="2" />
        </div>


        <div class="send_row send_submitforgotuser">
            <input type="submit" value="Submit" disabled="" />
        </div>
    </fieldset>
</form>

JS:

$(document).ready(function() {
    $("#forgot_pass_form").validate();
    $("#forgot_pass_form input").on('change', function() {
        if ($('#forgot_pass_form').valid()) {
            $('#forgot_pass_form input[type="submit"]').removeAttr('disabled');
        } else {
            $('#forgot_pass_form input[type="submit"]').attr('disabled', 'true');
        }
    });
});

例: http://jsfiddle.net/jeffshaver/K2XAX/3/

于 2013-02-28T12:12:44.153 に答える