【问题标题】:How to autoscroll to the form area when a field is not entered while submitting提交时未输入字段时如何自动滚动到表单区域
【发布时间】:2021-12-29 09:29:52
【问题描述】:

我想提交一个表单,但是当没有输入该字段时,它应该自动指向该区域。 我有单选按钮。当它没有被点击时,它应该自动滚动到单选按钮区域。当我执行我的代码时,它不是自动滚动到单选按钮,而是文本字段自动滚动。

当我尝试提交表单时,它不是自动滚动的,它只显示错误情况。如何解决这个问题

$('.sellingFormSave').submit(function(e) {
  //e.preventDefault();
  $('.form_error').remove();
  var count = 0;
  if (!$('[name=condition]:checked').val()) {
    $('.condition_radio .wrapper').after('<label class="form_error" style="color:red">Select the condition of the trucks.</label>');
    count++;
  }
  if ($('[name=product_id]').val() == '') {

    var qty = 0;

    if (count > 0) {
      $('[type=submit]').attr('disabled', false);
      return false;
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<form method="POST" action="/sellingFormSave" enctype="multipart/form-data" class="sellingFormSave" id="sellingFormSave">

  <div class="row">
    <div class="form-group col-md-12 condition_radio">
      <div class="wrapper">
        <span>Condition of the Trucks</span>
        <div class="toggle_radio">
          <input type="radio" class="toggle_option" id="as_is" value="as_is" name="condition" {{product.condition=='as_is' ? 'checked': ''}} {{product !='' ? 'disabled' : ''}} required>
          <input type="radio" class="toggle_option" id="dot_term" value="dot" name="condition" {{product.condition=='dot' ? 'checked': ''}} {{product !='' ? 'disabled' : ''}} required>
          <input type="radio" class="toggle_option" id="trade_term" value="trade" name="condition" {{product.condition=='trade' ? 'checked': ''}} {{product !='' ? 'disabled' : ''}} required>

          <label for="as_is"><p>As Is - Where Is</p></label>
          <label for="dot_term"><p>DOT Term</p></label>
          <label for="trade_term"><p>Trade Term</p></label>
          <div class="toggle_option_slider">
          </div>
        </div>
      </div>
    </div>
    <div class="form-group col-md-12">
      <div class="field__input-wrapper">
        <input type="text" class="field__input" placeholder="Name *" name="name" value="{{product.name}}" {{product !='' ? 'disabled' : 'required'}}>
      </div>
    </div>
    <div class="form-group col-md-4">
      <div class="field__input-wrapper">
        <input type="text" class="field__input" placeholder="City *" name="city" value="{{product.city}}" {{product !='' ? 'disabled' : 'required'}}>
      </div>
    </div>
    <div class="form-group col-md-12">
      <div class="field__input-wrapper field_input__confirm">
        <input type="checkbox" id="confirm" name="confirm[]" value="yes" {{product.confirm !='' ? 'checked' : ''}} {{product !='' ? 'disabled' : 'required'}}>
        <label for="confirm"> I certify that the above facts are true to the best of my knowledge and belief.</label>
      </div>
    </div>
  </div>
  <button type="submit" class="btn">
                                                Save
                                            </button>

</form>

<div class="modal fade bd-example-modal-lg" id="dot_termModal" tabindex="-1" role="dialog" aria-labelledby="dot_termModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-body">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h5>DOT Term</h5>
        <p>sdgfd fdgdfb dfhfdb vchrt </p>
      </div>
    </div>
  </div>
</div>
<!-- dot_term modal -->

<!-- trade_term modal -->
<div class="modal fade bd-example-modal-lg" id="trade_termModal" tabindex="-1" role="dialog" aria-labelledby="trade_termModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">

      <div class="modal-body">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h5>Trade Term</h5>
        <p>xgsd dfhdfjhfdb dhetdjn</p>
      </div>
    </div>
  </div>
</div>
<!-- trade_term modal -->

<!-- as_is modal -->
<div class="modal fade bd-example-modal-lg" id="as_isModal" tabindex="-1" role="dialog" aria-labelledby="as_isModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-body">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h5>As Is - Where Is</h5>
        <p>dfhfdh fdhdfjd.</p>
      </div>
    </div>
  </div>
</div>

【问题讨论】:

  • 如果要查看滚动结果,请使用$("#sellingFormSave").on("submit", function(e) { ... if (error) e.preventDefault(); ... })
  • 然后根据需要使用$('[name=product_id]').focus()
  • 或者删除脚本并将required添加到该字段并让浏览器处理它
  • @mplungjan 不工作

标签: html jquery forms radio-button autoscroll


【解决方案1】:
  1. 您没有名为 product_id 的字段
  2. 如果选中单选,则忽略其他字段。由于无线电是必需的,因此您无法触发“名称”或“城市”字段的任何错误,因为浏览器不会让您在不选择无线电的情况下提交
  3. product_name 是什么,为什么不使用它就将 qty 设置为 0。

这是一个演示。我按下保存按钮,这样您就可以看到浏览器将关注空名称。

下次请让代码与 HTML 匹配

$('#sellingFormSave').on("submit", function(e) {
  $('.form_error').remove();
  if (!$('[name=condition]:checked').val()) {
    $('.condition_radio .wrapper').after('<label class="form_error" style="color:red">Select the condition of the trucks.</label>');
  }
  if ($('[name=name]').val() == '') {
    e.preventDefault()
    $('[name=name]').focus();
  }
});
#dummy { margin-bottom: 1000px }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<form method="POST" action="/sellingFormSave" enctype="multipart/form-data" class="sellingFormSave" id="sellingFormSave">

  <div class="row">
    <div class="form-group col-md-12 condition_radio">
      <div class="wrapper">
        <span>Condition of the Trucks</span>
        <div class="toggle_radio">
          <input type="radio" class="toggle_option" id="as_is" value="as_is" name="condition" {{product.condition=='as_is' ? 'checked': ''}} {{product !='' ? 'disabled' : ''}} required>
          <input type="radio" class="toggle_option" id="dot_term" value="dot" name="condition" {{product.condition=='dot' ? 'checked': ''}} {{product !='' ? 'disabled' : ''}} required>
          <input type="radio" class="toggle_option" id="trade_term" value="trade" name="condition" {{product.condition=='trade' ? 'checked': ''}} {{product !='' ? 'disabled' : ''}} required>

          <label for="as_is"><p>As Is - Where Is</p></label>
          <label for="dot_term"><p>DOT Term</p></label>
          <label for="trade_term"><p>Trade Term</p></label>
          <div class="toggle_option_slider">
          </div>
        </div>
      </div>
    </div>

    <div class="form-group col-md-12">
      <div class="field__input-wrapper">
        <input type="text" class="field__input" placeholder="Name *" name="name" value="" {{product !='' ? 'disabled' : 'required'}}>
      </div>
    </div>
    <div class="form-group col-md-4">
      <div class="field__input-wrapper">
        <input type="text" class="field__input" placeholder="City *" name="city" value="" {{product !='' ? 'disabled' : 'required'}}>
      </div>
    </div>
    <div class="form-group col-md-12">
      <div class="field__input-wrapper field_input__confirm">
        <input type="checkbox" id="confirm" name="confirm[]" value="yes" {{product.confirm !='' ? 'checked' : ''}} {{product !='' ? 'disabled' : 'required'}}>
        <label for="confirm"> I certify that the above facts are true to the best of my knowledge and belief.</label>
      </div>
    </div>
  </div>
      <hr id="dummy" />
  <button type="submit" class="btn">Save</button>

</form>

<div class="modal fade bd-example-modal-lg" id="dot_termModal" tabindex="-1" role="dialog" aria-labelledby="dot_termModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-body">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h5>DOT Term</h5>
        <p>sdgfd fdgdfb dfhfdb vchrt </p>
      </div>
    </div>
  </div>
</div>
<!-- dot_term modal -->

<!-- trade_term modal -->
<div class="modal fade bd-example-modal-lg" id="trade_termModal" tabindex="-1" role="dialog" aria-labelledby="trade_termModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">

      <div class="modal-body">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h5>Trade Term</h5>
        <p>xgsd dfhdfjhfdb dhetdjn</p>
      </div>
    </div>
  </div>
</div>
<!-- trade_term modal -->

<!-- as_is modal -->
<div class="modal fade bd-example-modal-lg" id="as_isModal" tabindex="-1" role="dialog" aria-labelledby="as_isModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-body">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h5>As Is - Where Is</h5>
        <p>dfhfdh fdhdfjd.</p>
      </div>
    </div>
  </div>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    相关资源
    最近更新 更多