仅检查HTML中的单个单选按钮

时间:2019-01-01 15:01:17

标签: html css radio-button

我的问题是我在“性别”部分面临此问题,该部分只能选择一个,但是我可以选择全部三个。但是,当我仅选择一个单选按钮然后尝试提交数据时,它表明即使我已经选择了一个单选按钮,我也必须至少选择一个单选按钮。

我在下面附上了html和css片段:

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>

我们将不胜感激!

2 个答案:

答案 0 :(得分:2)

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">


    <fieldset>
      <legend>Gender</legend>
      <label for="Male"><input type="radio" name="Gender" value="Male"> Male</label>
      <label for="Female"><input type="radio" name="Gender" value="Female"> Female</label>
      <label for="Other"><input checked type="radio" name="Gender" value="Other"> Other </label>
    </fieldset>

    <input type="submit" name="" value="Submit">

  </form>
</body>

</html>

删除“必需”,默认情况下设置一个“已选中”。 radio group是您所需要的。 “名称”属性必须相同。

答案 1 :(得分:1)

保留与输入广播相同的名称,并将必需放在一个地方。

<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>

Another solution

您还可以在提交按钮中添加onClick

<!--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>

希望这会有所帮助!

相关问题