提问者:小点点

JQuery验证如果表单用于更新,则禁用验证


我有一个表单,其中的字段需要在数据库中是唯一的,比如用户名,当创建一个新用户时,验证工作通过使用远程方法检查用户名是否存在,这很好。 挑战是我使用相同的表单进行更新,一个ajax请求获取用户详细信息并将其填充到相同的表单中以允许进行更新,但是通过验证,用户名输入会发现一个错误,因此无法进行更新,我如何才能在更新期间禁用远程方法,或者我可以得到更好的解决方案?


共1个答案

匿名用户

在创建/更新时,使用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'