我有一个表单,其中的字段需要在数据库中是唯一的,比如用户名,当创建一个新用户时,验证工作通过使用远程方法检查用户名是否存在,这很好。 挑战是我使用相同的表单进行更新,一个ajax请求获取用户详细信息并将其填充到相同的表单中以允许进行更新,但是通过验证,用户名输入会发现一个错误,因此无法进行更新,我如何才能在更新期间禁用远程方法,或者我可以得到更好的解决方案?
在创建/更新时,使用value=''
维护一个输入字段,如下所示
当然,在“create”时value=“”
,在“update”操作时一些值(正在更新的记录的id),您必须根据执行的操作设置这些值。
<input type="hidden" name="update_id" value='' id="update_id">
现在在验证时
username: {
required: true,
remote : {
type: "POST",
async: false,
url: yourUrlHere,
data: {
id: function()
{
return $("#update_id").val();
}
}
}
}
这里,无论操作是create/update,即“”while create和更新时的某个值(被更新的记录的id),我们都发送update_id。
然后,您可以在页面上使用用户名检查逻辑url:yourUrlHere,
,例如,如果'id'=''那么从所有记录中检查重复的用户名,或者如果'id'='someval'那么从所有记录中检查重复的用户名,除了'id'='someval'