jQuery 使用路径参数验证远程选项
jQuery Validate remote option with path parameter
我的一个表单中的一个字段执行远程调用以验证名称的可用性。默认情况下,验证插件要使用 GET,并附加一个查询字符串,其中包含字段名称的键和字段值的值。
您可以通过更改为 POST 并设置数据值来覆盖它。
然而,在这两种情况下,URL 本身应该是静态的。例如,但默认情况下您不需要更多:
remote: {
url: '/validationService'
}
它将对 /validationService?fieldname=fieldvalue
执行 GET
由于 "remote" 是一个初始化时间参数,您通常不能使用动态 URL。我尝试放入一个函数表达式,它只是将它字符串化而不是对其求值。
问题
我需要它是动态的。该字段的值作为路径参数传递。换句话说,当验证被触发时,它会发送一个请求到:
validationService/fieldvalue
(别担心,validationService 只能处理该特定字段,因此无需在任何地方指定字段名)没有 POST 或随附的有效负载,虽然它是 GET,但没有查询字符串。
知道如何实现吗? (根据验证时字段的当前值动态评估 URL)
其他详细信息
验证服务 returns JSON 格式如下:
{
comment: "Success OR error message",
isValid: true
}
因此,要知道它是否成功,我需要获取消息(据我所知这是一个异步操作),然后计算 "isValid" 参数。理想情况下,我也会将评论作为 "message".
更新 2
我设法说服后端只更新服务,以便它可以接受查询字符串并以预期方式运行。这有一个新问题,但这可以转到另一个问题。我通常不介意继续成为 "test subject" 进行进一步研究(以防其他人遇到像我原来的问题一样的问题),但我没有为 运行 两个独立的环境做好准备。
使用委托给远程方法的自定义方法(由插件提供)(http://docs.jquery.com/Plugins/Validation/Validator/addMethod),并添加一个匹配该方法的class选择器。
<input class="dynamicurl" />
$.validator.addMethod("dynamicurl", function(value, element) {
return $.validator.methods.remote.call(this, value, element, "http://yoururl/validationService/"+value);
}, $.validator.messages.remote);
希望对您有所帮助!
我的一个表单中的一个字段执行远程调用以验证名称的可用性。默认情况下,验证插件要使用 GET,并附加一个查询字符串,其中包含字段名称的键和字段值的值。
您可以通过更改为 POST 并设置数据值来覆盖它。
然而,在这两种情况下,URL 本身应该是静态的。例如,但默认情况下您不需要更多:
remote: {
url: '/validationService'
}
它将对 /validationService?fieldname=fieldvalue
由于 "remote" 是一个初始化时间参数,您通常不能使用动态 URL。我尝试放入一个函数表达式,它只是将它字符串化而不是对其求值。
问题
我需要它是动态的。该字段的值作为路径参数传递。换句话说,当验证被触发时,它会发送一个请求到:
validationService/fieldvalue
(别担心,validationService 只能处理该特定字段,因此无需在任何地方指定字段名)没有 POST 或随附的有效负载,虽然它是 GET,但没有查询字符串。
知道如何实现吗? (根据验证时字段的当前值动态评估 URL)
其他详细信息
验证服务 returns JSON 格式如下:
{
comment: "Success OR error message",
isValid: true
}
因此,要知道它是否成功,我需要获取消息(据我所知这是一个异步操作),然后计算 "isValid" 参数。理想情况下,我也会将评论作为 "message".
更新 2
我设法说服后端只更新服务,以便它可以接受查询字符串并以预期方式运行。这有一个新问题,但这可以转到另一个问题。我通常不介意继续成为 "test subject" 进行进一步研究(以防其他人遇到像我原来的问题一样的问题),但我没有为 运行 两个独立的环境做好准备。
使用委托给远程方法的自定义方法(由插件提供)(http://docs.jquery.com/Plugins/Validation/Validator/addMethod),并添加一个匹配该方法的class选择器。
<input class="dynamicurl" />
$.validator.addMethod("dynamicurl", function(value, element) {
return $.validator.methods.remote.call(this, value, element, "http://yoururl/validationService/"+value);
}, $.validator.messages.remote);
希望对您有所帮助!