单选按钮验证不适用于IE

时间:2014-01-01 20:20:35

标签: javascript jquery validation

如果用户输入了所有必需的答案,我有以下代码验证问卷表格并在下一页上发布答案。此代码在Chrome和其他浏览器上完美运行,IE(Internet探索)除外。它显示警告消息“回答所有问题”甚至选择选项所有问题。这件事只发生在IE中。有人可以告诉我为什么它的表现如此吗?

<script type="text/javascript">

//---------------Method for validating the Question whole form --------------//
function checkRadio(name)
{
  var radio = document.forms.myForm[name];
  for (var option in radio)
  {
    if(radio[option].checked)
    { return true; }
  }
  return false;
}

function ValidateQuestions()
{
  if (checkRadio("question1") && checkRadio("question2") && checkRadio("question3") && checkRadio("question4") && checkRadio("question5") && checkRadio("question6") && checkRadio("question7") && checkRadio("question8") && checkRadio("question9") && checkRadio("question10") && checkRadio("question11") && checkRadio("question12") && checkRadio("question13") && checkRadio("question14") && checkRadio("question15") && checkRadio("question16") && checkRadio("question17") && checkRadio("question18") && checkRadio("question19") && checkRadio("question20") ) 
  { return true; }
  else{ return false; }
}

//-----------------------------------------------------------------------------//

jQuery(document).ready(function($) 
{    
    jQuery('#submitFormC').click(function()
    {
     var str = $("#questionnaireForm").serialize();
     var data = {
                 action: 'myajax-submit',
                 s: str,
                 beforeSend: function(){ 
                    $( "#tab" ).empty();
                    $("#tab").append("<img id='busyImg' src='busy.gif'/>");
                    }
                }; 

        if(ValidateQuestions())
        {
        jQuery.post("thankyou.php?t=<?php echo $sid;?>", data,  function(response) { 
        //alert('Got this from the server: ' + response);
        $( "#tab" ).empty().append( response );
        } );
        }
        else { alert("Answer all questions"); }
     return false;   
    });
});
</script>

1 个答案:

答案 0 :(得分:1)

试试这个:小提琴:http://jsfiddle.net/eNt3c/4/

function checkRadio(name)
{
       if($("input[name='"+ name + "']").is(':checked'))
       { return true; }
        alert("Please select " + name);
        return false;
}