克隆中的验证不能使用jquery

时间:2015-09-20 04:42:44

标签: jquery jquery-validate

使用jquery和我当前的代码在克隆中进行验证。

  1. 如果用户最初点击下一个按钮而未填写任何必填字段,则显示错误消息您错过了4个字段。请在提交前填写。

  2. 如果用户单击表单中的addmore按钮,如果用户未填写任何字段,则应提示消息显示成功。

  3. 如果用户填写克隆中的任何一个字段,如果点击下一个按钮,则应该显示总您错过了7个字段。请在提交前填写。

  4. 如果用户点击删除按钮,那么如果用户点击下一个按钮,则应该说您错过了4个字段。请在提交前填写。

  5. 用我目前的代码我已经达到了第一点而不是2,3,4我很困惑请帮助我。我在苦苦挣扎

    这是jquery代码

    $(document).ready(function () {  
    $('.error_msge').hide();
     $("#basicForm").validate({
         onkeyup: false,
            showErrors: function (errorMap, errorList) {
            var errors = this.numberOfInvalids();
    
            if (errors) {
                var message = errors == 1 ? 'You missed 1 field. It has been highlighted' : 'You have missed ' + errors + ' fields. Please fill before submitted.';
                $("#error_message").html(message);
                $(".error_msge").show();
            } else {
                $(".error_msge").hide();
            }
            this.defaultShowErrors();
        },
        errorPlacement: function () {
            return false;
        },
        highlight: function (element) {
    
            if ($(element).is(':radio'))  {
    
            } else {
                $(element).addClass('errRed');
            }
            $(element).prevAll('label').find('span.required-star').addClass('text-error-red').removeClass('text-error-black');            
        },
        unhighlight: function (element) {
    
            if ($(element).is(':radio')) {
            } else {
                $(element).removeClass('errRed');
            }
            $(element).prevAll('label').find('span.required-star').addClass('text-error-black').removeClass('text-error-red');
    
        },
    
        rules: {
            txt_Jbt: "required",
            txt_Empl: "required",
            txt_Fdob: "required",
            txt_Tdob: "required"
        }
    });
    

    这是fidde Link

    请帮助我

    提前致谢

1 个答案:

答案 0 :(得分:1)

检查您在jsfiddle中使用的代码。克隆元素具有相同的name属性<input name="**">值。 Validator将它视为一个字段,尽管它们不同。除此之外,我还根据类名分配了规则。如果这是您的预期行为,请告诉我。

....
$clone.find('[id]').each(function () {
  this.id += '_' + $('.cloned-row3').length + 1 
  this.name += '_' + $('.cloned-row3').length + 1 
});
.... 

编辑1:

Working solution - jsfiddle