Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何动态更新jQuery验证消息 $(“#frmNewContracts”)。验证({ errorClass:“状态错误”, validClass:“状态成功”, 错误元素:“span”, 规则:{ txtusername:{必需:true, rangelength:[5,18], 远程:{url:“../\u aQ8/auxphp/ajxcontrol.php”,键入:“get”} } }, 信息:{ txtusername:{必需:“用户名是必需的”, rangelength:“用户名必须介于5-18个字符之间”, 远程:$.validator.format(“用户名:{0}已被占用,请尝试另一个”) } }, errorLabelContainer:“#JoinerGroup”, 包装纸:“李” });_Jquery_Jquery Validate - Fatal编程技术网

如何动态更新jQuery验证消息 $(“#frmNewContracts”)。验证({ errorClass:“状态错误”, validClass:“状态成功”, 错误元素:“span”, 规则:{ txtusername:{必需:true, rangelength:[5,18], 远程:{url:“../\u aQ8/auxphp/ajxcontrol.php”,键入:“get”} } }, 信息:{ txtusername:{必需:“用户名是必需的”, rangelength:“用户名必须介于5-18个字符之间”, 远程:$.validator.format(“用户名:{0}已被占用,请尝试另一个”) } }, errorLabelContainer:“#JoinerGroup”, 包装纸:“李” });

如何动态更新jQuery验证消息 $(“#frmNewContracts”)。验证({ errorClass:“状态错误”, validClass:“状态成功”, 错误元素:“span”, 规则:{ txtusername:{必需:true, rangelength:[5,18], 远程:{url:“../\u aQ8/auxphp/ajxcontrol.php”,键入:“get”} } }, 信息:{ txtusername:{必需:“用户名是必需的”, rangelength:“用户名必须介于5-18个字符之间”, 远程:$.validator.format(“用户名:{0}已被占用,请尝试另一个”) } }, errorLabelContainer:“#JoinerGroup”, 包装纸:“李” });,jquery,jquery-validate,Jquery,Jquery Validate,嗨, 正如问题所暗示的那样,我有一个使用jqvalidate插件进行表单验证的代码,上面提供的代码是一个片段,我已经用我的html表单隔离并单独尝试过,问题也是一样的 问题是:用户名应该动态更新(或者我认为是这样),以显示用户输入的用户名,但它已经存在于DB表中-所有都正常工作,但在测试和尝试多个重复用户名时,故意检查功能,消息显示正确,但用户名继续显示输入的第一个重复用户名。它不会更新以显示用户名表单字段中当前的重复名称。这是我的正常行为吗?我需要做其他事情吗?您可以使用jQuery获取用户名

嗨, 正如问题所暗示的那样,我有一个使用jqvalidate插件进行表单验证的代码,上面提供的代码是一个片段,我已经用我的html表单隔离并单独尝试过,问题也是一样的


问题是:用户名应该动态更新(或者我认为是这样),以显示用户输入的用户名,但它已经存在于DB表中-所有都正常工作,但在测试和尝试多个重复用户名时,故意检查功能,消息显示正确,但用户名继续显示输入的第一个重复用户名。它不会更新以显示用户名表单字段中当前的重复名称。这是我的正常行为吗?我需要做其他事情吗?

您可以使用jQuery获取用户名,然后在format方法中使用

$("#frmNewContracts").validate({

      errorClass   : "state-error",
      validClass   : "state-success",
      errorElement : "span",

      rules: {

            txtusername  :  { required    : true,
                              rangelength : [5, 18],
                              remote      : { url  : "./_aQ8/auxphp/ajxcontrol.php", type : "get" }
                            }
      },

      messages: {

            txtusername  :  { required    : "User-name is required",
                              rangelength : "User-name must be between 5 - 18 characters",
                              remote      : $.validator.format("User-name :  <strong>{0}</strong> is already taken please try another")
                            }
      },
        errorLabelContainer: "#joinerrgroup",
        wrapper: "li"               
});
remote:function(){
返回jQuery.format(“用户名:{0}已被占用,请尝试另一个”,$(“#用户名”).val();
}

您不需要
远程
消息
选项


根据文档,如果您从服务器端代码回显或发送JSON编码的字符串,验证将失败,该字符串将成为验证消息。

我遇到了这个错误,接受的答案只起到了评论中Flim Flam所指出的两倍作用。对我来说,修复方法是向返回字符串的函数添加一个参数(我称之为“元素”)

例如:

remote: function() {
  return jQuery.format("User-name : <strong>{0}</strong> is already taken please try another", $("#username").val());
}
远程:功能(元素){
返回jQuery.format(“用户名:{0}已被占用,请尝试另一个”,$(“#用户名”).val();
}

感谢您的回答,但现在它只在前两次测试中起作用,但当输入第三个重复的名称时,它仍会在消息中显示第二个重复的名称。试了几次,结果都一样。所以有点接近,但并不完美。虽然有人输入3个重复名称的几率非常低,但这仍然是一个令人讨厌的问题。是的,我所有的ID都是唯一的,但是我认为
jQuery。validate
使用元素名称属性-无论哪种方式,它们都是唯一的。更新:我已将您的ID标记为正确答案,由于进一步的测试,我注意到当按照我正在做的事情(剪切“粘贴”以节省时间)输入连续的重复名称时,验证工作如您所述。因为大多数人都不会把名字贴进去——我相信这就是问题所在,你的解决方案确实是正确的——谢谢你的帮助。Cheerresmy脚本没有失败,因为当我键入唯一用户名时,它正常工作,并且根据我下面对“Tsvetomir Nikolov”的响应,当我键入已知的重复名称进行测试时,它正确识别前两个,然后第三次继续显示第二个重复名称,不再显示当前名称重复名称entered@FlimFlam,但显然你的方法有很大的问题,因为它总是在第三次尝试时失败。我的回答向您展示了一种更稳健、更标准的方法。我看不出您在文档中从何处获得了您的信息——文档展示了一种访问返回结果的技术。文档没有显示消息和
format()
并不意味着它不能使用。官方文件中的稀疏示例(只有两个完整示例)在各种SO线程中不断受到负面评论。我得到的结果指向其他地方的一个问题。@FlimFlam,如:“服务器端响应必须是JSON字符串,对于有效元素必须为“true”,对于无效元素可以为“false”、未定义或null,使用默认错误消息。如果服务器端响应是字符串,例如。”该名称已被使用,请改用peter123,此字符串将显示为自定义错误消息,而不是默认错误消息
remote: function(element) {
  return jQuery.format("User-name : <strong>{0}</strong> is already taken please try another", $("#username").val());
}