首页 > 解决方案 > 资格问题后的表单重定向

问题描述

我有一个包含几页问题的表格。我想通过先询问一些资格问题来减少填写表格的人数。我有两个问题希望他们回答,如果他们回答不,我会将他们发送到一个页面,告诉他们他们不符合条件。

这是我到目前为止所做的,但它不起作用。我设置的不是重定向到页面,而是继续到表单的下一页。任何帮助是极大的赞赏。

        <p>Do you know the rules? *</p>
        <div class="formfield radio">
            <input class="refinput" type="radio" id="rulesYes" value="true" required>
            <label class="reflabel" for="rulesYes">Yes</label><br>
            <input class="refinput" type="radio" id="rulesNo"  value="false" required>
            <label class="reflabel" for="rulesNo">No</label>
        </div>

        <p>Have you downloaded the rules PDF? *</p>
        <div class="formfield radio">
            <input class="refinput" type="radio" id="pdfYes" value="true" required>
            <label class="reflabel" for="pdfYes">Yes</label><br>
            <input class="refinput" type="radio" id="pdfNo" value="false" required>
            <label class="reflabel" for="pdfNo">No</label>
        </div>

       <input type="submit" name="next" id="button" class="next action-button" value="Next" />

和JS:

<script>
    document.getElementById("submit").onclick = function(value) {
    if ('#rulesNo' == false && '#pdfNo' == false) {
        window.location.href = "/download-page.php";
     }
    }
    </script>
          

标签: javascriptforms

解决方案


Not A Bot 对这个问题做了公正的处理。您也可以选择使用 inputElement.checked 来监视选中状态,而不是使用值 true 或 false。在这种情况下,您不需要将 value 属性添加到 html 中的输入。

注意:!由于我编写自己的代码的方式,我使用了 not 运算符。

If (!rulesYes.checked || !pdfYes.checked)表示是否未选中 rulesYes 或 pdfYes。您可以根据需要修改代码。

Javascript代码:

document.getElementById('button').onclick = function() {
 let rulesYes = document.getElementById('rulesYes');
 let pdfYes = document.getElementById('pdfYes');
  if (!rulesYes.checked || !pdfYes.checked) {
   console.log('Not Allowed!');
  } else {
   console.log('permission granted');
  }
}

您可以在代码笔上测试和使用代码


推荐阅读