2013-09-30 3 views
0

Я пытаюсь получить пару переключателей для проверки с помощью JavaScript/HTML, но у меня возникают проблемы. Часть сценария у меня возникли проблемы с заключается в следующем -Radio button validaton

 if ((RegistrationForm.sexm[0].checked == false) && (RegistrationForm.sexf[1].checked == false)) 
     { 
      alert("Please select your sex"); 
      return false; 
     } 

В основном я хочу, чтобы вернуть предупреждение, если выбрано ни опции радио кнопок. В тот момент, когда представленная форма обновляется и не предоставляет никаких предупреждений. Любой совет будет принят во внимание!

Соответствующий HTML я был обеспечен для работы с это -

<form id="RegistrationForm" onsubmit="ValidateForm()" action=""> 
<fieldset> 
    <legend>Registration Form</legend> 
    <label for="username">User Name: </label> 
    <input type="text" class="input" id="username"/><br /> 
    <label for="password">Password: </label> 
    <input type="password" class="input" id="password"/><br /> 
    <label for="repassword">Re-Type Password: </label> 
    <input type="password" class="input" id="repassword"/><br /> 
    <label for="email">Email Address: </label> 
    <input type="text" class="input" size="30" id="email"/><br /> 
    <label>Age: </label> 
    <select id ="age" name="age"> 
     <option value=""> --- </option> 
     <option value="0-18">0-18</option> 
     <option value="18-30">18-30</option> 
     <option value="30-50">30-50</option> 
     <option value="50+">50+</option> 
    </select><br/> 
    <label for="sexm">Sex:</label> 
    <input type="radio" id="sexm" name="sex" value="male" />Male<br/> 
    <label for="sexf">&nbsp; </label> 
    <input type="radio" id="sexf" name="sex" value="female" />Female<br/> 
    <input type="checkbox" name="agree" id="agree" value="agree"/> 
    <label for="agree">I accept the <a href="">terms and cond</a>.</label> <br/> 
    <label>&nbsp; </label> 
    <input type="submit" value="Submit" class="button" /> 
</fieldset> 
</form> 
+0

Вы используете '' && в случае. Так что это будет 'IF', только если оба не выбраны. Вы пробовали, не выбирая никого из них. –

+0

Может ли у вас посмотреть: http://stackoverflow.com/questions/18262432/radio-buttons-post-show-value-even-none-of-the-buttons-are-checked-how-to-valida –

+0

Да, это то, что мне нужно, я хочу только оповещение, если ни одна из них не выбрана. Однако даже если оставить их пустыми, я не получаю предупреждающее сообщение. Извините, если я неправильно понял, что вы имеете в виду здесь! –

ответ

2

Попробуйте этот код в JavaScript <script> тег

function ValidateForm() { 
    if ((document.getElementById("sexm").checked == false) && (document.getElementById("sexm").checked == false)) 
    { 
     alert("Please select your sex"); 
     return false; 
    } else { 
     return true; 
    } 
} 

Замените его ваш код

if ((RegistrationForm.sexm[0].checked == false) && (RegistrationForm.sexf[1].checked == false)) 
{ 
    alert("Please select your sex"); 
    return false; 
} 
1

Используйте for цикл, чтобы проверить, выбрал ли ваш пользователь какое-либо значение или нет, если нет, то чем бросить предупреждение и использовать return false для запретить отправку вашей формы.

Demo

var ischecked = null; 
var radios = document.getElementsByName('sex'); 
for (var i = 0; i < radios.length; i++) { 
      if (radios[i].checked) { 
      ischecked = radios[i]; 
    } 
} 
if(ischecked==null) { 
    alert('Please choose your Sex'); 
    return false; 
} 

Сохранить приведенный выше код в функции, и вызвать его на представить вашу форму.


Demo 2 (Validate на подать)

Примечание: Вы должны использовать onsubmit="return ValidateForm();"

0

попробовать это ...

<script type="text/javascript"> 
function validate() 
{ 
var o = document.getElementById('sexm'); 
var t = document.getElementById('sexf'); 

if ((o.checked == false) && (t.checked == false)) 
{ 
alert ("please select your sex"); 

return false; 
} 
return true; 
} 
</script>