动态控件MVC上的JQuery验证

时间:2014-03-03 10:38:54

标签: javascript jquery asp.net asp.net-mvc

我在GridView上验证动态addes输入时遇到问题。我有部分视图,每个局部视图都有自己的GridView。在我的_Layout上,我有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();
})

在我的观点结束时,我有一个用于修改和附加规则的脚本:

<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"
            }
        }
    })

})

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

1 个答案:

答案 0 :(得分:0)

$.validator.unobtrusive.parse('#yourFormSelector') 

应该有帮助:) 它重新初始化表单的验证 - 之后,该方法将可用于新加载的元素