2013-05-23 3 views
0

Я некоторые Javascript, который должен подтвердить флажок (что делает его обязательным), но мою форму независимо от того, проверяется или не только представляет, вот мой код:Флажок проверки не работает

<script> 
    function validateCheckBoxes(theForm) { 
    if (!theForm.declare.checked) { 
     alert ('You must tick the checkbox to confirm the declaration'); 
     return false; 
    } else {  
     return true; 
    } 
    } 
</script> 

<form name="form" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi" onsubmit="return validateCheckBoxes(this);"> 
    <input type="checkbox" name="declare" id="declare"> 
    <input type="submit" name="submit" id="submit" value="submit"> 
</form> 

Любой идеи о том, почему он не работает?

ответ

1
<script type="text/javascript"> 
function validateCheckBoxes(theForm) 
{ 
if (!theForm.declare.checked) 
{ 
    alert ('You must tick the checkbox to confirm the declaration'); 
    return false; 
} else {  
    return true; 
} 
} 
</script> 

<form name="form" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi" onsubmit="return validateCheckBoxes(this);"> 

<input type="checkbox" name="declare" id="declare"> 

</form> 

Как @shin упоминалось, необходимо указать объект формы во время вызова функции.
theForm.declare.checked возвращает true или false нет необходимости проверять значение с помощью оператора ==. Просто используйте его непосредственно (Пользователь в зависимости от потребности - свести на нет результат)

+0

Я выяснил, почему ответы, которые я получаю, не работают, я отредактировал свой первоначальный пост и задавался вопросом, можете ли вы объяснить мне, почему конфликтующие коды вызвали эту проблему? Я также использовал ваш код, который сейчас работает. – AJJ

0

изменить вызов функции как

  return validateCheckBoxes(this); 

Eg:

 <form name="form" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi" onsubmit="return validateCheckBoxes(this);"> 

Поскольку theForm следует обратиться объект

+0

По-прежнему не повезло .. – AJJ

+0

Какая ошибка отображается в консоли вашего браузера? – Shin

+0

Я выяснил, почему ответы, которые я получаю, не работают, я отредактировал свой первоначальный пост и задавался вопросом, можете ли вы объяснить мне, почему конфликтующие коды вызвали эту проблему? – AJJ

0
<script> 
    function validateCheckBoxes() 
    { 
    if (document.getElementById('declare').checked == false) 
    { 
     alert ('You must tick the checkbox to confirm the declaration'); 
     return false; 
    } else {  
    return true; 
    } 
    } 
</script> 

<form name="form" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi"  onsubmit="return validateCheckBoxes();"> 

<input type="checkbox" name="declare" id="declare" /> 
<input type="submit" name="submit" value="submit" /> 

</form> 
+0

Это не сработало для меня. – AJJ

0

Вот что я пытался и работал для меня

<script type='text/javascript'> 
    function validateCheckBoxes() 
{ 
if (document.forms[0].declare.checked == false) 
{ 
    alert ('You must tick the checkbox to confirm the declaration'); 
    return false; 
} else {  
    return true; 
} 
} 
</script> 

<form name="form" method="POST" action="yourURL/search" id="eoi" onsubmit="return validateCheckBoxes();"> 
    <input type="checkbox" name="declare" id="declare"/> 
</form> 

Я не думаю, что вам нужно передать ссылку объекта формы на функцию.

+0

ли это предотвратит столкновение кодов? – AJJ

+0

Не понял, что именно вы подразумеваете под кодами, столкнувшимися? –

+0

кажется, что код ниже моего HTML препятствует моей проверке флажка от работы, потому что, когда я помещаю код ниже моего HTML между/* */(делая его неактивным), код проверки флажка отлично работает – AJJ

Смежные вопросы