Rumah > hujung hadapan web > tutorial js > Peraturan Pengesahan Custom JQuery - Fieldpresent

Peraturan Pengesahan Custom JQuery - Fieldpresent

Joseph Gordon-Levitt
Lepaskan: 2025-02-23 09:23:09
asal
645 orang telah melayarinya

Tutorial ini menunjukkan cara membuat peraturan pengesahan tersuai untuk borang anda menggunakan plugin jQuery.validate.js, memperluaskan panduan sebelumnya untuk menyediakan pengesahan borang. Kami akan memanfaatkan fungsi $.validator.addMethod() untuk menentukan peraturan ini. Demo langsung disediakan, dan contohnya termasuk pengendalian tarikh pengesahan kelahiran. Nota: Versi yang ditampal menangani keserasian silang dan isu rekursi dimasukkan.

Contoh:

Contoh -contoh berikut menggambarkan peraturan pengesahan tersuai yang memastikan kedua -dua nama dan medan e -mel dihuni. Sekiranya seseorang diisi, yang lain mesti juga.

  • Pengesahan medan kiri: jQuery Custom Validation Rule - fieldPresent
  • Pengesahan medan kanan: jQuery Custom Validation Rule - fieldPresent
  • kedua -dua bidang dalam tindakan (berbilang pasang): jQuery Custom Validation Rule - fieldPresent

Live Demo:

(edit pada jsfiddle)

kod jQuery (versi patched):

Coretan yang lebih baik ini menyelesaikan masalah ketidakkonsistenan dan masalah rekursi silang:

// Custom validation: each friend entered must have an email and a name
$.validator.addMethod("fieldPresent", function(value, element, options) {
    var targetEl = $('input[name="' + options.data + '"]'),
        targetEmpty = (targetEl.val() == ''),
        elEmpty = (value == ''),
        bothEmpty = elEmpty && targetEmpty;

    if (!bothEmpty && targetEmpty) {
        setTimeout(function() {
            if (targetEl.closest('.control-group-inner').find('label.fieldPresentError').length == 0) {
                targetEl.addClass('error');
                if (!elEmpty) $(element).closest('.control-group-inner').find('label.fieldPresentError').remove();
                targetEl.closest('.control-group-inner').find('label.fieldPresentError').remove();
                targetEl.after("<label class='fieldPresentError'>Friend's name and email required.</label>");
            }
        }, 500);
    }

    return (bothEmpty || !elEmpty);
}, "Friend's name and email required.");

$('#myForm').validate({
    onkeyup: true,
    rules: {
        "friend1-name": { "fieldPresent": { data: "friend1-email" } },
        "friend1-email": { "fieldPresent": { data: "friend1-name" } }
    },
    submitHandler: function(form) {
        console.log('passed validation.');
        //submit form handler
    }
});
Salin selepas log masuk

<form id="myForm">
    <div class="control-group">
        <div class="control-group-inner">
            <label for="friend1-name">Friend's name</label>
            <input type="text" name="friend1-name" />
        </div>
        <div class="control-group-inner">
            <label for="friend1-email">Email Address</label>
            <input type="email" name="friend1-email" />
        </div>
    </div>
    <button type="submit">Submit</button>
</form>
Salin selepas log masuk
CSS:

.control-group {
    width: 100%;
}

.control-group-inner {
    width: 50%;
    float: left;
    display: inline-block;
}

.error {
    border: 1px solid red;
}

label.fieldPresentError {
    color: red;
    display: block;
    margin-top: 5px;
}
Salin selepas log masuk
Tarikh Pengesahan Lahir (3 Input):

Bahagian ini menunjukkan cara mengesahkan tarikh lahir menggunakan tiga bidang berasingan (hari, bulan, tahun):

ingat untuk memasukkan tag
// Custom validation for dob
$.validator.addMethod("dobValid", function(value, element, options) {
    var day = $('input[name="dob-day"]'),
        month = $('input[name="dob-month"]'),
        year = $('input[name="dob-year"]'),
        anyEmpty = (day.val() == '' || month.val() == '' || year.val() == '');

    if (anyEmpty) {
        day.add(month).add(year).addClass('error');
    } else {
        day.add(month).add(year).removeClass('error');
    }

    return !anyEmpty;
}, "Please enter your date of birth.");

// ... (rest of your validation code, including the rules for dob-day, dob-month, dob-year)
Salin selepas log masuk
yang diperlukan untuk jQuery dan jQuery Validate plugin dalam fail HTML anda. Tutorial yang dipertingkatkan ini memberikan penyelesaian yang lebih mantap dan boleh dipercayai untuk pengesahan bentuk tersuai.

Atas ialah kandungan terperinci Peraturan Pengesahan Custom JQuery - Fieldpresent. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan