首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多参数parsley.js远程验证

多参数parsley.js远程验证
EN

Stack Overflow用户
提问于 2022-09-16 17:50:38
回答 1查看 38关注 0票数 0

我使用parsley.js,并且我希望集成一个验证,它检查服务器站点上输入的值是否已经在数据库中。在服务器站点上,我需要更多信息,而不仅仅是输入的值。所以我需要提交更多的参数(在这个简化的例子"obj-id“和"site-id"= )中。

我不知道该选择哪种方法。我认为定制的远程验证可能是正确的方法。

我也不知道服务器的响应是什么样子的。

代码语言:javascript
复制
<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>
代码语言:javascript
复制
$('#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, );

小提琴:https://jsfiddle.net/Phantomias/3xmqu840/17/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-03 15:15:46

根据文档,您可以使用属性data-parsley-remote-options向您的验证器传递额外的设置,以便向您的API端点提供更多的上下文,而不需要定制验证器。

根据你的片段,它会喜欢这样的东西

代码语言:javascript
复制
<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个值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73748621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档