Javascript 动态控件MVC上的JQuery验证

Javascript 动态控件MVC上的JQuery验证,javascript,jquery,asp.net,asp.net-mvc,Javascript,Jquery,Asp.net,Asp.net Mvc,我在GridView上验证动态加法输入时遇到问题。我有局部视图,每个局部视图都有自己的GridView。在我的_布局中,我有指向jquery.validation.min.s等脚本的所有链接。GridView包装在一个表单中,因此我有表单id。函数用于将新行附加到GridView: <script type="text/javascript"> $(function () { $(document).on('click', '.addCostObject', function

我在GridView上验证动态加法输入时遇到问题。我有局部视图,每个局部视图都有自己的GridView。在我的_布局中,我有指向jquery.validation.min.s等脚本的所有链接。GridView包装在一个表单中,因此我有表单id。函数用于将新行附加到GridView:

<script type="text/javascript">
$(function () {
    $(document).on('click', '.addCostObject', function () {
        var existRowSave = $('.saveCostObject').length;
        var existRowEdit = $('.updateCostObject').length;
        if (existRowSave == 0 && existRowEdit == 0) {
            $('#gridCostObject tbody').append('<tr>' +
                   '<td><a href="#" id=\'saveCostObject\' class="saveCostObject"><img src="@Url.Content("~/Images/save_.png")" /></a> <a href="#" id=\'cancelSaveCostObject\' class="icancelSaveCostObject"><img src="@Url.Content("~/Images/save_cancel.png")" /></a></td>' +
                   '<td></td>' +
                   '<td><input type="text" name=\'costObject\' id=\'costObjectName\' class=\'costObjectNameClass\' placeholder=\'Cost Object Type\' data-val="true" data-val-required="This field is required"/></td>' +
                   '<td><input type="text" name=\'objectIdName\' id=\'objectId\' class=\'objectIdClass\' placeholder=\'Object ID\' data-val="true" data-val-required="This field is required"/></td>' +
                   '</tr>');
        }
        else {
            alert('Save/Update or Cancel your previous record!');
        }
    })
    event.stopImmediatePropagation();
})

$(函数(){
$(文档).on('click','addCostObject',函数(){
var existRowSave=$('.saveCostObject').length;
var existRowEdit=$('.updateCostObject').length;
if(existRowSave==0&&existRowEdit==0){
$('#gridCostObject tbody')。追加(''+
' ' +
'' +
'' +
'' +
'');
}
否则{
警报(“保存/更新或取消以前的记录!”);
}
})
事件。stopImmediatePropagation();
})

在我的观点的结尾,我有一个用于确定日期和附加规则的脚本:

<script type="text/javascript">
$(function() {
    $("#gridCostObject").validate("add", {
        rules: {
            costObject: {
                required: true
            },
            objectIdName: {
                required: true,
                digits: true
            }
        },
        messages: {
            objectIdName: {
                digits: "Object id contains only digits"
            }
        }
    })

})

$(函数(){
$(“#gridCostObject”)。验证(“添加”{
规则:{
成本对象:{
必填项:true
},
目标名称:{
要求:正确,
数字:真
}
},
信息:{
目标名称:{
数字:“对象id仅包含数字”
}
}
})
})

在保存单击时,调试器总是说对象窗体没有“有效”。到目前为止,我已经尝试将我的脚本放在我的视图中的任何地方,并尝试所有可能的组合。我做错了什么

$.validator.unobtrusive.parse('#yourFormSelector') 
应该有帮助:)
它将重新初始化表单的验证-之后,该方法将可用于新加载的元素

不工作。无法读取属性错误。我在#layout中unobtrusive.js之前有validate.js。请说明丢失了哪个属性。我在另一个问题上看到的是,我现在找不到,您还需要:$(“#yourFormSelector”).removeData('validator').removeData('unobtrusiveValidation');