javascript - 资格问题后的表单重定向
问题描述
我有一个包含几页问题的表格。我想通过先询问一些资格问题来减少填写表格的人数。我有两个问题希望他们回答,如果他们回答不,我会将他们发送到一个页面,告诉他们他们不符合条件。
这是我到目前为止所做的,但它不起作用。我设置的不是重定向到页面,而是继续到表单的下一页。任何帮助是极大的赞赏。
<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>
解决方案
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');
}
}
您可以在代码笔上测试和使用代码
推荐阅读
- java - Spring Boot 和 JPA+Postges:Lob 映射到文本但整数被持久化
- linux - 是否有 data: Linux 上类似 URI 的路径构造?
- python - 从 k 个字母的字符串中构建一个函数,该函数从有效单词列表中输出单词列表,并找到拼字游戏得分最高的单词
- r - 自动执行脚本,以便使用批处理文件和/或 Windows 任务调度程序将对象保存到全局环境中
- amazon-web-services - 与 S3 同步:Errno 24 打开的文件过多
- python - 没有等待的异步任务队列
- java - 在 android studio 的选项卡布局中看不到小部件
- c# - 在带有 ClosedXML 的列验证中使用 INDIRECT
- javascript - 通过单击按钮从浏览器下载任何文件
- python - 使用 QThread 将 Pyqt5 程序转换为 Pyside6