вернуть false, но все же опубликовать на следующей странице - PullRequest
0 голосов
/ 24 мая 2011

У меня есть группа из 3 флажков, и если они не установлены, он вернет ложное и предупреждающее сообщение.Когда я отправляю форму, я получаю предупреждающее сообщение, что «Вы должны проверить хотя бы один цвет!»тогда функция вернет false.Тем не менее, он все еще будет публиковать на следующей странице.Я предполагаю, что это побудит меня проверить флажок.Может ли кто-нибудь помочь мне!

<FORM ACTION=' ||cur_page||' METHOD="POST" class="myform" id="myform"  >


<p><label>Select color<em>*</em></label><div class="required">
<input type="checkbox" name="p_red" id="p_red" class="require-one" value="RED" /> RED </p>
<p><label>&nbsp;</label><input type="checkbox" name="p_blue" id="p_blue" class="require-one" value="BLUE"  /> BLUE </p>
<p><label>&nbsp;</label><input type="checkbox" name="p_yellow" id="p_yellow" class="require-one" value="YELLOW"  /> YELLOW </P></div>

<div><input type="submit" value="Pay By Credit" name="RTS_Button" class="button red"  ></div>


<SCRIPT>
$(document).ready(function() {     
    $("#myform").submit(function() {         
        var $fields = $(this).find(''input:checkbox[id="p_color"]:checked'');         
        if (!$fields.length) {             
            alert("You must check at least one color!");             
            return false; // The form should *not* submit         
         }     
      }); 
});

</SCRIPT> 

Ответы [ 2 ]

1 голос
/ 24 мая 2011

.length вернуть число
Попробуйте вместо этого:

     if ($fields.length === 0) {             
        alert("You must check at least one color!");             
        return false; // The form should *not* submit         
     }   
0 голосов
/ 10 августа 2011

Попробуйте вместо этого:

    <form action="javascript:sendForm();">

А для вашего сценария:

    function submitForm() {
        var $fields = $(this).find(''input:checkbox[id="p_color"]:checked'');         
        if (!$fields.length) {             
            alert("You must check at least one color!");             
            return false; // The form won't submit
         }
         else {
             //Run an ajax call from here to POST your data
             alert("Ajax worked (or not), but the fields were checkd");
         }

Однако это другой подход / UX.

...