本文介绍了仅检查 HTML 中的单个单选按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的问题是我在性别"部分面临这个问题,它必须只选择一个,但我可以选择所有三个.但是,当我只选择一个单选按钮然后尝试提交数据时,它表明我必须选择至少一个单选按钮,即使我已经选择了一个单选按钮.
My problem is that I am facing this problem in Gender Section in which It has to select only one but I can select all three. However, when I select only one radio button and then try to submit the data, it shows that I have to select at least one radio button even if i had already selected one radio button.
我在下面附上了 html 和 css 片段:
I have attached both the html and css snippet below :
body {
margin: 0;
padding: 0;
font-family: sans-serif;
background: #34495e;
}
.box {
width: 300px;
padding: 40px;
position: absolute;
top: 85%;
left: 50%;
transform: translate(-50%, -40%);
background: #191919;
text-align: center;
}
.box h1 {
color: white;
text-transform: uppercase;
font-weight: 500;
}
select > option {
background: #191919;
color: white;
}
.box textarea {
height: 75px;
}
.box label[for='Male'],
.box label[for='Male'] + input,
.box label[for='Female'],
.box label[for='Female'] + input,
.box label[for='Other'],
.box label[for='Other'] + input,
.box input[type='radio'] {
display: inline;
clear: none;
width: auto;
}
.box input[type='text'],
.box input[type='password'],
.box select,
.box input[type='tel'],
.box textarea,
.box fieldset,
.box input[type='radio'],
.box input[type='email'] {
border: 0;
background: none;
display: block;
margin: 20px auto;
text-align: center;
border: 2px solid #3498db;
padding: 14px 10px;
width: 200px;
outline: none;
color: white;
border-radius: 24px;
transition: 0.25s;
}
.box input[type='text']:focus,
.box input[type='password']:focus,
.box select:focus,
.box input[type='tel']:focus,
.box textarea:focus,
.box input[type='email']:focus {
width: 280px;
border-color: #2ecc71;
}
.box input[type='submit'] {
border: 0;
background: none;
display: block;
margin: 20px auto;
text-align: center;
border: 2px solid #2ecc71;
padding: 14px 40px;
outline: none;
color: white;
border-radius: 24px;
transition: 0.25s;
cursor: pointer;
}
.box input[type='submit']:hover {
background: #2ecc71;
}
.box input[type='radio'] {
display: inline;
width: auto;
}
fieldset label {
margin-right: 5px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<title>My Example</title>
<link rel="stylesheet" href="Student-css.css" />
</head>
<body>
<form class="box" method="POST" action="test.html">
<h1>Student Registration</h1>
<!-- First Name -->
<input type="text" name="Fname" placeholder="First Name" required />
<!-- Middle Name -->
<input type="text" name="Mname" placeholder="Middle Name" required />
<!-- Last Name -->
<input type="text" name="Lname" placeholder="Last Name" required />
<!-- Moblie Number -->
<input type="tel" name="Mnumber" placeholder="Mobile Number" pattern="[0-9]{10}" required />
<!-- Parent's Number -->
<input type="tel" name="Pnumber" placeholder="Parents Number" pattern="[0-9]{10}" required />
<!-- Address -->
<textarea name="Address" placeholder="Address" maxlength="500" required></textarea>
<!-- City -->
<input type="text" name="City" placeholder="City" required />
<!-- Branch -->
<select required id="Branch" name="Branch">
<option value="" selected="selected">Branch</option>
<option value="AutoMobile">AutoMobile</option>
<option value="Civil">Civil</option>
<option value="Computer">Computer</option>
<option value="Electrical">Electrical</option>
<option value="Mechanical">Mechanical</option>
</select>
<!-- Enrollment Number -->
<input type="tel" name="Enroll" placeholder="Enrollment Number" pattern="[0-9]{12}" required />
<!-- Gender -->
<fieldset>
<legend>Gender</legend>
<label for="Male"><input type="radio" name="Gender" required value="Male" /> Male</label>
<label for="Female"><input type="radio" name="Gender" required value="Female" /> Female</label>
<label for="Other"><input type="radio" name="Gender" required value="Other" /> Other </label>
</fieldset>
<!--E-mail Address -->
<input type="email" name="email" placeholder="E-mail Address" required />
<!-- Password -->
<input type="password" name="pass" placeholder="Password" required />
<!--Blood Group -->
<select id="Blood Group" name="Blood Group">
<option value="" selected="selected">Blood Group</option>
<option value="A+">A+</option>
<option value="B+l">B+</option>
<option value="AB+">AB+</option>
<option value="O+">O+</option>
<option value="A-">A-</option>
<option value="B-">B-</option>
<option value="AB-">AB-</option>
<option value="O-">O-</option>
</select>
<!--Submit Button -->
<input type="submit" name="" value="Submit" />
</form>
</body>
</html>
我们将不胜感激!
推荐答案
保持name与输入radio相同,并将required放在一个地方.
Keep the name same of input radio and put required in just one place.
<legend>Gender</legend>
<label for="Male"><input type="radio" name="Gender-M" required value="Male"> Male</label>
<label for="Female"><input type="radio" name="Gender-F" required value="Female"> Female</label>
<label for="Other"><input type="radio" name="Gender-O" required value="Other"> Other </label>
试试这个代码:
<legend>Gender</legend>
<label for="Male"><input type="radio" name="gender" required value="Male"> Male</label>
<label for="Female"><input type="radio" name="gender" value="Female"> Female</label>
<label for="Other"><input type="radio" name="gender" value="Other"> Other </label>
另一种解决方案
您也可以在提交按钮中添加 onClick
:
You can also add onClick
in your submit button:
<!--Submit Button -->
<input type="submit" name="" value="Submit" onClick="ValidateForm(this.form)">
<script>
function ValidateForm(form){
ErrorText= "";
if ( ( form.gender[0].checked == false ) && ( form.gender[1].checked == false ) && ( form.gender[2].checked == false ) )
{
alert ( "Please choose your Gender: Male or Female" );
return false;
}
if (ErrorText= "") { form.submit() }
}
</script>
希望这会有所帮助!
这篇关于仅检查 HTML 中的单个单选按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!