使地址行2输入元素可选

问题描述 投票:0回答:1

我有一个html form,我正在使用Jquery来验证输入元素,但问题是该脚本正在验证所有输入文本字段而不验证选择字段。此外,我需要将地址行2输入文本字段设置为可选,并且必须要求选择字段。

<fieldset>
<div class="form-bottom">
    <div class="row">
        <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
            <input type="text" class="form-control" placeholder="addres 1" id="add1" name="" value="" |>
        </div>
        <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
            <input type="text" class="form-control" placeholder="address 2" id="add2" name="" value="">
        </div>
        <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
            <input type="text" class="form-control" placeholder="city" id="city" name="" value="" |>
        </div>
    </div>
    <div class="row">
        <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
            <input type="text" class="form-control" placeholder="Home Phone" id="contact_number" name="" value="">
        </div>
    </div>

 < script >
$(document).ready(function() {
    $('.registration-form fieldset:first-child').fadeIn('slow');

    $('.registration-form input[type="text"]').on('focus', function() {
        $(this).removeClass('input-error');
    });

    // next step
    $('.registration-form .btn-next').on('click', function() {
        var parent_fieldset = $(this).parents('fieldset');
        var next_step = true;

        parent_fieldset.find('input[type="text"],input[type="email"]').each(function() {
            if ($(this).val() == "") {
                $(this).addClass('input-error');
                next_step = false;
            } else {
                $(this).removeClass('input-error');
            }
        });

        if (next_step) {
            parent_fieldset.fadeOut(400, function() {
                $(this).next().fadeIn();
            });
        }

    });

    // previous step
    $('.registration-form .btn-previous').on('click', function() {
        $(this).parents('fieldset').fadeOut(400, function() {
            $(this).prev().fadeIn();
        });
    });

    // submit
    $('.registration-form').on('submit', function(e) {

        $(this).find('input[type="text"],input[type="email"]').each(function() {
            if ($(this).val() == "") {
                e.preventDefault();
                $(this).addClass('input-error');
            } else {
                $(this).removeClass('input-error');
            }
        });

    });

}); < /script>
jquery html5
1个回答
0
投票

如果您不想验证address2。你可以忽略它。试试这个。

jQuery的

 $('.registration-form').on('submit', function(e) {
        $(this).find('input:text[name!=add2],input[type="email"]').each(function() { // this will filter input of having name of add2
            if ($(this).val() == "") {
                e.preventDefault();
                $(this).addClass('input-error');
            } else {
                $(this).removeClass('input-error');
            }
        });

    });

HTML

   <form class="registration-form" name="register">
    <fieldset>
        <div class="form-bottom">
            <div class="row">
                <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
                    <input type="text" class="form-control" placeholder="addres 1" id="add1" name="" value="" |>
                </div>
                <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
                    <input type="text" class="form-control" placeholder="address 2" id="add2" name="add2" value="">
                </div>
                <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
                    <input type="text" class="form-control" placeholder="city" id="city" name="" value="" |>
                </div>
            </div>
            <div class="row">
                <div class="form-group col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12">
                    <input type="text" class="form-control" placeholder="Home Phone" id="contact_number" name=""
                           value="">
                </div>
            </div>
        </div>
    </fieldset>
    <input type="submit" value="Submit">
</form>
© www.soinside.com 2019 - 2024. All rights reserved.