如何根据表单元素类型验证调查?

时间:2013-08-04 21:53:44

标签: javascript jquery

我有一个由不同表单元素(radio,text,select)组成的表单,并在PHP中动态创建。但是,我正在尝试基于问题类型在JQuery中验证此表单。我的问题名为q1,q2,.....

$(function(){
        if ($('form').length > 0) {
            $('form').submit(function(e){
        var len = <?php echo $numRows; ?>; // refers to the number of rows in questions table of a database
        for (var i = 1; i <= len; i++ ) {
            var qNum = 'q'+i;
            //document.write(qNum);
            if (($('input[name=' + qNum + ']:checked').length == 0) )
            {
                if ($('input[type=Radio][name=' + qNum + ']')) {
                    alert("No Selection is made for "+ qNum);
                    return false;
                }

            }
        }           
            }); // form submit function

        }// form.length
    })//function

以上代码可有效处理单选按钮。但是,当谈到非无线电问题时,它仍然会向非无线电问题显示警告信息。无论如何,根据问题类型处理这个问题?

1 个答案:

答案 0 :(得分:0)

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
    $(function(){
        if ($('form').length > 0) {
            $('form').submit(function(e){
                var answers = '';
                //alert (qNum);
        var i = 1;
        var len = <?php echo $numRows; ?>;
                $('input[type=Radio]:checked').each(function() {
                    if (answers !== '') {
                        answers += ',';
                    }
                    answers += $(this).val();
            //alert(answers);
                })
                $('input[name=h2]').val(answers);       
        for (var i = 1; i <= len; i++ ) {
            var qNum = 'q'+i;
            //document.write(qNum);
            if (($('input[name='+qNum+']:checked').length == 0) )
            {
                if ($('#'+qNum+'').is(':radio')) {
                    alert("No Selection is made for "+ qNum);
                    return false;
                }
            }
        }           
            }); // form submit function

        }// form.length
    })//function