我使用parsley.js,并且我希望集成一个验证,它检查服务器站点上输入的值是否已经在数据库中。在服务器站点上,我需要更多信息,而不仅仅是输入的值。所以我需要提交更多的参数(在这个简化的例子"obj-id“和"site-id"= )中。
我不知道该选择哪种方法。我认为定制的远程验证可能是正确的方法。
我也不知道服务器的响应是什么样子的。
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>parsley.js Remote Validation</title>
</head>
<body>
<h1>parsley.js Remote Validation</h1>
<label for="name" class="form-label sr-only">Name</label>
<input id="name" class="form-control" name="tag[name]" required
data-obj-id="200" data-site-id="100"
data-parsley-remote
data-parsley-remote-validator='check-dupliate'
data-parsley-required-message="Please enter a name!"
>
<button type="button" class="btn btn-success btn-save">Save</button>
</body>
</html>$('#name').parsley();
$(document).on('click', '.btn-save', function()
{
if ($('#name').parsley().validate() === true)
{
console.log('do stuff');
}
});
window.Parsley.addAsyncValidator('check-dupliate', function (xhr)
{
$element = this.$element;
console.log($element.data('obj-id'));
console.log($element.data('site-id'));
return 404 === xhr.status;
}, document.URL, );发布于 2022-11-03 15:15:46
根据文档,您可以使用属性data-parsley-remote-options向您的验证器传递额外的设置,以便向您的API端点提供更多的上下文,而不需要定制验证器。
根据你的片段,它会喜欢这样的东西
<input
id="name"
class="form-control"
name="tag[name]"
required
data-parsley-remote-options='{"type": "POST", "dataType": "jsonp", "data":{"obj_id":"200","site_id":"100"}}'
data-parsley-remote
data-parsley-required-message="Please enter a name!"
/>这个对象{"type": "POST", "dataType": "jsonp", "data":{"obj_id":"200","site_id":"100"}}将进行POST调用,并将发送data和您的字段的值。
下面是具有更新Fiddle调用的POST和作为表单post值发送到端点的3个值。
https://stackoverflow.com/questions/73748621
复制相似问题