2

在我的 jquery 脚本中,我有两个函数来验证表单中的每个字段。当我单击提交时,它会检查表单中每个字段的验证,但我希望它使我的一些字段成为可选的。

这是我的代码

function validateSteps(){

    var FormErrors = false;
    for(var i = 1; i < fieldsetCount; ++i){
        var error = validateStep(i);
        if(error == -1){

            FormErrors = true;

        }

        }

    $('#formElem').data('errors',FormErrors);   
}
    function validateStep(step){
    if(step == fieldsetCount) return;

    var error = 1;
    var hasError = false;
    $('#formElem').children(':nth-child('+ parseInt(step) +')').find(':input:not(button)').each(function(){
        var $this       = $(this);
        var valueLength = jQuery.trim($this.val()).length;

        if(valueLength == ''){

            hasError = true;
            $this.css('background-color','#FFEDEF');
        }
        else
            $this.css('background-color','#FFFFFF');    
    });
    var $link = $('#navigation li:nth-child(' + parseInt(step) + ') a');
    $link.parent().find('.error,.checked').remove();

    var valclass = 'checked';
    if(hasError){

        error = -1;
        valclass = 'error';
    }
    $('<span class="'+valclass+'"></span>').insertAfter($link);

    return error;
}

我怎样才能使我的一些字段成为可选的?

4

1 回答 1

3

您可以通过执行以下操作来缩小主要选择范围

$('#formElem').children(':nth-child('+ parseInt(step) +')')
              .find(':input:not(button):not(.nocheck)')

需要将类nocheck分配给您不想检查的那些字段(=可选字段)。

编辑: 以下 JSfiddle 显示了选择(仅)在操作中:http: //jsfiddle.net/K6zpD/ (打开您的 JavaScript 控制台以查看输出。检查的输入字段的名称将在那里列出。)

于 2013-08-15T12:04:52.283 回答