javascript - HTML INPUT RANGE - 禁用提交,直到发生更改

标签 javascript jquery html

我有一个具有三个输入范围的表单,如下所示:

<div class="form-style-5">
  <legend><span class="number">4</span> Search by Scholarship Requirements
  </legend>
  <form action="search3.php" method="post" oninput="amount1.value=rangeInput1.value; amount2.value=rangeInput2.value; amount3.value=rangeInput3.value;" target="_parent">
    <fieldset>
      Minimum SAT:
      <output for="rangeInput" name="amount1">0</output>
      <input id="rangeInput1" max="2400" min="0" name="satscore" required="" type="range" value="0">
      <br>
      <br>
      <input name="crm" type="checkbox" value="CR+M">CR+M
      <input name="crm" type="checkbox" value="CR+M+W">CR+M+W
      <br>
      <br>Minimum ACT:
      <output for="rangeInput" name="amount2">0</output>
      <input id="rangeInput2" max="36" min="0" name="actscore" required="" type="range" value="0">
      <br>
      <br>Minimum GPA:
      <output for="rangeInput" name="amount3">0</output>
      <input id="rangeInput3" max="4" min="0" name="gpascore" required="" type="range" value="0">
      <br>
    </fieldset>
    <br>
    <input type="submit" value="SEARCH">
  </form>
</div>

我的值默认为“0”,但问题是在某些情况下用户会选择三种输入类型中的任何一种,但我需要他们在提交之前至少选择一种。

我已经绞尽脑汁好几个小时了,不知道该怎么做——有人可以帮忙吗?

最佳答案

我的第一个建议是为每个输入提供唯一的名称或类,以便在代码中识别它们(这样您可以单独检查它们,而不是一次全部检查)。然后,创建一个 jQuery 代码片段来处理验证;

$("input[type='submit']").click(function(e){
  // Stop the form submitting
  e.preventDefault()

  if($("input[name='enterFieldNameHere']").val() != '0' || $("input[name='enterFieldNameHere2']").val() != '0' || $("input[name='enterFieldNameHere3']").val() != '0'){
     // At least one value isn't 0, submit the form
    return true;
  }else{
    // Tell the user the input is invalid
    alert('Please select an option');
  }
})

此代码未经测试,仅用于演示该想法。

关于javascript - HTML INPUT RANGE - 禁用提交,直到发生更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990598/

相关文章:

asp.net - 为什么 Response.BufferOutput = False 不起作用?

javascript - 在 React 和 JSX 中使用度数符号

javascript - Angular $scope 没有在 HTML 中显示正确的数据

javascript - HTML audio Element 如何重播?

javascript - AngularJS 中循环 2 个不同的对象

javascript - 关于 AngularJS 中的异步、 promise 和链接的问题

jquery - 如果移动设备不支持 jquery 移动版本,则显示错误消息

javascript - 如何检查时间是否大于javascript中两个日期之间的总时间?

javascript - 可将 IN 转换为 CM 的尺码表

html - 屏幕阅读器读取 anchor 标记或角色 ="dialog"中的所有内容