Javascript 动态控件MVC上的JQuery验证
我在GridView上验证动态加法输入时遇到问题。我有局部视图,每个局部视图都有自己的GridView。在我的_布局中,我有指向jquery.validation.min.s等脚本的所有链接。GridView包装在一个表单中,因此我有表单id。函数用于将新行附加到GridView: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
<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');