Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC Jquery验证数据表。新行未被验证_Jquery_Model View Controller_Jquery Validate_Unobtrusive Validation - Fatal编程技术网

MVC Jquery验证数据表。新行未被验证

MVC Jquery验证数据表。新行未被验证,jquery,model-view-controller,jquery-validate,unobtrusive-validation,Jquery,Model View Controller,Jquery Validate,Unobtrusive Validation,我正在开发一个带有html5的MVC网络应用程序 我有一个表单(由Razor构建,因此所有内容都有正确的名称),只要我不添加新行,jquery验证就可以作为一种魅力 添加新行时,Jquery无法识别新行 我试图删除旧的验证并添加新的验证->无结果 -$.removeData(格式为“验证器”);form.validate() 我试图刷新它,但它就是不起作用。 我找到了一些名称重复的解决方案,但这不是我的问题 有什么帮助吗 初始化我的表 $("#plantsTable").dataTable({

我正在开发一个带有html5的MVC网络应用程序

我有一个表单(由Razor构建,因此所有内容都有正确的名称),只要我不添加新行,jquery验证就可以作为一种魅力

添加新行时,Jquery无法识别新行

我试图删除旧的验证并添加新的验证->无结果 -$.removeData(格式为“验证器”);form.validate()

我试图刷新它,但它就是不起作用。 我找到了一些名称重复的解决方案,但这不是我的问题

有什么帮助吗

  • 初始化我的表

    $("#plantsTable").dataTable({
    "paging": false,
    "searching": false,
    "bInfo": false,
    "fixedHeader": true,
    "columns": [
        { "orderDataType": "dom-text-numeric", "sType": "numeric" },
        { "orderDataType": "dom-text", "sType": "string" },
        { "orderDataType": "dom-select", "sType": "string" },
        { "orderDataType": "dom-checkbox", "sType": "numeric", },
        { "orderDataType": "dom-checkbox", "sType": "numeric", },
        null,
        null,
        null
    ],
    "order": [[1, "asc"]],
    "aoColumnDefs": [{
        "bSortable": false,
        "aTargets": ["no-sort"]
    }]
    
    }))

  • 初始验证

    $(selector).validate();
    $(selector).valid();
    $(selector).tooltip(...);
    
  • 添加新行

    addNewRow:函数(表选择器、控制器、操作、元素) { hasChanges=true; var rowCount=$(tableSelector).children('tbody').children('tr').length

    }

  • 重新验证(?)

  • 示例HTML(添加新行后)

    
    
  • 修正了它:

    function resetFormValidator(formId) {
        $(formId).removeData('validator');
        $(formId).removeData('unobtrusiveValidation');
        $.validator.unobtrusive.parse(formId);
    }
    

    您应该使用同时删除以前的valdiation事件处理程序的解决方案:
    $(“表单”).removeData(“验证程序”).removeData(“不引人注目的验证”).off(“submit.validate click.validate focusin.validate focusout.validate keyup.validate invalid form.validate”);$。验证程序。不引人注目。解析(“表单”)
    
    $(selector).validate();
    $(selector).valid();
    $(selector).tooltip(...);
    
    <form action="/Anlagen" id="plantsForm" method="post" novalidate="novalidate">
      <tr role="row" class="odd">
        <td class="tableInputCell" hidden="">
          <input data-val="true" 
            data-val-number="The field AnlageNrID must be a number." 
            id="Anlagen_2__AnlageNrID" name="Anlagen[2].AnlageNrID"
            readonly="readonly" type="text" value="28" tabindex="-1">
            <span class="field-validation-valid"
             data-valmsg-for="Anlagen[2].AnlageNrID"
             data-valmsg-replace="true" style="display:none"></span>
        </td>
        <td class="tableInputCell sorting_1">
          <input data-val="true"
            data-val-length="Das Feld &quot;Bezeichnung&quot; muss eine Zeichenfolge mit einer maximalen Länge von 30 sein." 
            data-val-length-max="30"
            data-val-required="Das Feld &quot;Bezeichnung&quot; ist erforderlich." 
            id="Anlagen_2__AnlageBez" name="Anlagen[2].AnlageBez"
            style="width:450px" type="text" value="(Alle Anlagen)"
            class="valid">
              <span class="field-validation-valid"
                data-valmsg-for="Anlagen[2].AnlageBez"
                data-valmsg-replace="true" style="display:none"></span>
        </td>
    </tr>
    <tr>
        <td class="tableInputCell" hidden="">
          <input data-val="true"
            data-val-number="The field AnlageNrID must be a number."
            id="Anlagen_3__AnlageNrID" name="Anlagen[3].AnlageNrID" 
            readonly="readonly" type="text" value="">
            <span class="field-validation-valid"
              data-valmsg-for="Anlagen[3].AnlageNrID"
              data-valmsg-replace="true" style="display:none"></span>
        </td>
        <td class="tableInputCell">
          <input data-val="true" 
            data-val-length="Das Feld &quot;Bezeichnung&quot; muss eine Zeichenfolge mit einer maximalen Länge von 30 sein."
            data-val-length-max="30"
            data-val-required="Das Feld &quot;Bezeichnung&quot; ist erforderlich." 
            id="Anlagen_3__AnlageBez" name="Anlagen[3].AnlageBez"
            style="width:450px" type="text" value="">
            <span class="field-validation-valid"
              data-valmsg-for="Anlagen[3].AnlageBez"
              data-valmsg-replace="true" style="display:none"></span>
        </td>
      </tr>
    </form>
    
    function resetFormValidator(formId) {
        $(formId).removeData('validator');
        $(formId).removeData('unobtrusiveValidation');
        $.validator.unobtrusive.parse(formId);
    }