2014-03-03 48 views
0

我在驗證GridView上的動態addes輸入時遇到了問題。我有部分視圖,每個局部視圖都有自己的GridView。在我的_Layout我有所有鏈接到像jquery.validation.min.s等腳本.GridView包裹在一個表單,所以我有表單ID。對於追加新行的GridView功能:關於動態控件的JQuery驗證MVC

<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(); 
}) 

在我看來,年底我有vaildating和附加規則的腳本:

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

}) 

在保存點擊,調試器總是說對象窗體沒有「有效」。我試圖把我的腳本放到我的視野中,並嘗試所有可能的組合。我究竟做錯了什麼?

回答

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

應該幫助:) 它重新初始化爲表單驗證 - 在此之後,該方法可用於您的新加載的元素

+0

不工作。無法讀取屬性錯誤。我在_layout中的unobtrusive.js之前有validate.js。 – Flipper

+0

請註明哪些房產缺失 – Grishka

+0

不顯眼的財產 – Flipper