当填充一个字段时,必须要求其他字段

时间:2016-02-05 10:25:55

标签: javascript jquery forms validation

我创建了一个表单。我添加了验证。如果填写了表单中的一个字段,则必须填写所有其他字段,或者如果没有填写任何字段,则不需要检查验证。   我使用方法焦点来添加验证。选择一个字段,所有字段都需要验证执行。

我使用jquery-validation

 <script>

$(document).ready(function () {

    $("#myFormId").validate(
            {

            }
    );

    $('.contact1').focus(function () {
        $('.contact1').addClass("required");
    });
    $('.contact2').focus(function () {
        $('.contact2').addClass("required");
    });



});
    </script>

当我点击所需字段时,如果表格中没有填写任何字段,则添加到field.how以删除所需

2 个答案:

答案 0 :(得分:0)

&#13;
&#13;
$('#myFormId').on('change', function() { // change or input event
  var $inputs = $(this).find(':input:not(:submit)');
  var anyInputChanged = !!$inputs.filter(function() {
    return this.value !== this.defaultValue;
  }).length;
  $inputs.toggleClass('required', anyInputChanged);
});
&#13;
.required {
  outline: 1px solid red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="myFormId">
  <input>
  <input>
  <input type="submit">
</form>
&#13;
&#13;
&#13;

如果表单中的任何输入没有更多的默认值,您可以切换所需的类:

$('#myFormId').on('change', function() { // change or input event
  var $inputs = $(this).find(':input:not(:submit)');
  var anyInputChanged = !!$inputs.filter(function() {
    return this.value !== this.defaultValue;
  }).length;
  $inputs.toggleClass('required', anyInputChanged);
});

答案 1 :(得分:0)

您的代码与您想要做的事情完全匹配,看起来更像是这样:

<script>

$(document).ready(function () {

    $("#myFormId").validate(
        {
            ...
        }
    );

    $('#myFormId input').on('focus keyup', function() {
        if($(this).val().length > 0){
            $('#myFormId input').attr("required",true);
        }
        else{
            $('#myFormId input').attr("required",false);
        }
    });

    });
</script>

此外,您可能需要在更改属性时重新调用表单上的验证功能(但不要引用我的内容)。

这应该更接近你想要的,但要玩得开心!