2011-11-02 34 views
1

我有一个表格,并尝试禁用后,如果没有选择电台:如何在检查前禁用表单提交?

function checkForm(obj){ 
      var return_value = true; 
      var error_msg = 'Some text: '+'\n'; 

      $("input[type='radio']:not(:checked)").each(function() { 
       error_msg += $(this).next().text() + ", "; 
      }); 

      if(!return_value) 
       alert(error_msg); 

      return return_value; 
     } 

形式:

<form name="test1" method="post" action="result.php" onsubmit="return checkForm(this);"> 
    <span id="q2"><h4>My question</h4></span> 

    <ul> 

    <li><input type="radio" name="answer[2]" value="5" />a1</li> 

    <li><input type="radio" name="answer[2]" value="6" />a2</li> 

    <li><input type="radio" name="answer[2]" value="7" />a3</li> 
    <li><input type="radio" name="answer[2]" value="8" />a4</li> 
    </ul> 
    </div> 
    <div><input type="submit" value="Send!" name="submit" class="button" id="start" /></div> 
</form> 

但毫无戒备的节目和形式提交。

回答

1

你可以试试这个

$('form[name=test1]').submit(function(){     
     var return_value = false;    
     var error_msg = 'Some text: '+'\n'; 
     $("input[type='radio']").each(function() { 
      if ($(this).attr('checked')){ 
       return_value = true; 

      } else { 
       error_msg += $(this).next().text() + ", "; 
      } 
       }); 

     if(!return_value)     
       alert(error_msg);    

     return return_value;   
      }); 

和HTML删除的onsubmit功能

+0

工作完美,但不显示ID的。Jus'null'我使用:'error_msg + = $(this).next()。attr('id')+“,”; ' – skywind

+0

没有任何一个你的无线电盒你的值和名称属性的id。获得值使用'$(this).next()。val()' – run

4

如果未检查单选按钮,则应该将return_value设置为false,因为初始值为true

+0

谢谢你!但是,如果我欺骗了所有 - 它显示警告( – skywind