使html选择元素是必需的

问题描述 投票:-1回答:2

我有一个Html表单,我需要在我的表单中生成<select>元素是必需的,截至目前我的脚本只验证<input type="text">元素并忽略<select>

<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>
javascript jquery html5
2个回答
0
投票

尝试选择的.selectedIndex属性。你的第一个<option>应为空,然后只验证selectedIndex是否不是0。


0
投票

你可以使用HTML5字段中的required属性在<input >中创建一个输入字段,就像这样

HTML

<form method="#">
  <input id="email" type="email" required >
  <input id="password" type="password" required >
  <select name="select" id="select" required>
     <option value="Select an option" disabled selected></option>
  </select>
</form>

您需要将输入包装在表单中

JS

// 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 {
            let selectVal = document.querySelector('select').value;
            if (selectVal && selectVal.length >= 1) {
               // passed
               $(this).removeClass('input-error');
            }
            else {
              // failed
              $(this).addClass('input-error');
              next_step = false;
            }
        }
    });

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

});
© www.soinside.com 2019 - 2024. All rights reserved.