我想将jQuery验证与jEditable一起使用。在这里,我在一个类似于这样的循环中从数据库中回显一个表。
<table id="example" class="display" cellspacing="0" border="0">
<thead>
<tr>
<th>
Name
</th>
<th>
Phone
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="items" userid="'.$row['id'].'" id="name">'.$row['name'].'</td>
<td class="items required" userid="'.$row['id'].'" id="phone">'.$row['phone'].'</td>
</tr>
</tbody>
</table>
这是我正在使用的带有jQuery验证代码的jEditable脚本。
$("td.items").each(function(index) {
$(this).editable("handler.php", {
onsubmit: function(settings, td) {
var input = $(td).find('input');
$(this).validate({
rules: {
phone: {
number: true,
}
},
messages: {
phone: {
number: 'Only numbers are allowed',
}
},
});
return ($(this).valid());
},
submitdata : {userid: $(this).attr('retailerid')},
indicator : "<img src='images/indicator.gif'>",
tooltip : "Doubleclick to edit...",
event : "dblclick",
onblur : "submit",
name : 'newvalue',
id : 'elementid',
});
});
在这里,jEditable工作得很好。但验证的事情不起作用。这个验证码正确吗?
引用OP:"此验证代码正确吗?"
事实并非如此。插件参数中目标input
元素的名称应仅引用form
中input
元素的name
属性,而不是table
中单元格的id
。
在AFAIK中,jQuery验证插件被设计为仅针对包含在<form>
中的<input>
元素。您的代码中既没有。
http://docs.jquery.com/Plugins/Validation/validate#toptions