javascript - HTML如何根据另一个输入中的答案设置输入的值范围
问题描述
在我的网络表格上,我有一个问题,询问出生日期和性别。
我想使用 Javascript 进行检查,以确保如果用户选择“男性”,他必须年满 18 岁且未满 55 岁。但如果他们选择“女性”,他们必须在 20 岁以上和 50 岁以下。
(我的 HTML 示例)我有:
<b>Gender: </b><br>
<input type="radio" name="Gender" value="male" required> Male
<input type="radio" name="Gender" value="female" required> Female
<br><br>
<b>Date of Birth: </b><br>
<input type="date" name="dob" required >
<br><br>
我该怎么做呢?
解决方案
由于没有任何有用的答案,这就是我最终自己做的事情:
function checkGender() {
var test = document.getElementById("male").checked;
document.getElementById("demo").innerHTML = test;
if (test == true) {
ageMin = 18;
ageMax = 55;
} else {
ageMin = 20;
ageMax = 50;
}
//The following are only used to test that the values work
document.getElementById("demo1").innerHTML = ageMin;
document.getElementById("demo2").innerHTML = ageMax;
var dateString = document.getElementById("doB").value;
var today = new Date();
var birthDate = new Date(dateString);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth()- birthDate.getMonth();
document.getElementById("demo3").innerHTML = dateString;
document.getElementById("demo4").innerHTML = today;
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
document.getElementById("demo5").innerHTML = age;
if (age<ageMin || age>ageMax) {
alert("Age is outside limits, please try again.");
stop();
}
}
HTML方面的事情:
<div class="form-row">
<br>
<legend class="col-form-label col-sm-1 col-sm-offset-1">Gender:</legend>
<div class="col-sm-4">
<div class="form-check">
<input class="form-check-input" id="male" type="radio"
name="Gender" value="male" required checked name="gender">
<label class="form-check-label" for="male">
Male
</label>
</div>
<div class="form-check">
<input id="female" type="radio" name="Gender" value="female" required name="gender">
<label class="form-check-label" for="female">
Female
</label>
</div>
</div>
<div class="col-sm-4">
<label for="doB">Date of Birth:</label><br>
<input id="doB" type="date" name="dob" required>
</div>
</div>
推荐阅读
- gatsby - 为什么我没有索引到 Algolia?
- mysql - 如何在 SQL 中为临时列设置条件?
- android - 如何覆盖底部导航默认图标
- docker - Docker 机器:不工作:证书权限被拒绝
- java - 为什么 Java Font 在 macOs 的 Dock 中添加 java 图标?
- mysql - MySQL 哪里不是全部为空?
- hyperledger-fabric - Hyperledger Fabric:监听数据流,同时提交交易
- reactjs - 更漂亮的冲突?(问号和点)在 typescript-react 中的 prop-bracket 中出现语法错误
- javascript - Firebase 插入发生而不是更新,没有显示错误
- google-cloud-platform - GCP 部署管理器 - 结合使用什么 Dev Ops 工具?