gpt4 book ai didi

javascript - JQuery表单验证: Error Message not displayed when there is escaped JSON

转载 作者:行者123 更新时间:2023-12-03 12:03:27 24 4
gpt4 key购买 nike

下面的脚本效果很好,但今天我遇到了一个场景,我认为是由转义的 JSON 引起的。

正如您将在下面的代码中看到的,我使用远程验证根据需要返回 JSON 格式的错误消息。

返回的特定错误消息看起来没有显示:{"valid":false, "error":"XDMP-BADCHAR: (err:XPST0003) 发现意外字符 '\"' (0x0022)"}

我怀疑这是由于转义的双引号(上面的粗体部分)造成的。

我怀疑这一点,因为类似的错误消息看起来像这样显示得很好:{"valid":false, "error":"XDMP-BADCHAR: (err:XPST0003) Unexpected character found ''' ( 0x0027)"}

我尝试进一步逃避事情,但无济于事。任何建议将不胜感激。

代码:

$(document).ready(function(){
$('#form-validate').validate();
$("[name^=customfields]").each(function(){
$(this).rules("add", {
remote: {
type: "GET",
url: "/xpath-evaluator.xqy",
dataType: "json",
dataFilter: function(data) {
var json = JSON.parse(data);
if (json.valid != false) {
return true;
}
else {return "\"" + json.error.split(')')[1] + "\"";}
}
}
});
});
});

最佳答案

由于我无法更改返回的远程响应,因此我使用替换来转义有问题的字符,在本例中它是 '\"',如下面的错误所示:

{"valid":false, "error":"XDMP-BADCHAR: (err:XPST0003) 发现意外字符 '\"' (0x0022)"}

下面是更新后的 Javascript,展示了我是如何做到的:

$(document).ready(function(){
$('#form-validate').validate();
$("[name^=customfields]").each(function(){
$(this).rules("add", {
remote: {
type: "GET",
url: "/xpath-evaluator.xqy",
dataType: "json",
dataFilter: function(data) {
var json = JSON.parse(data);
if (json.valid != false) {
return true;
}
else {
var jerror = json.error.split(')')[1]
return '\"' + jerror.replace('\"', '\\"') + '\"'}
}
}
});
});
});

感谢 Sippy 的评论,让我走上了解决这个问题的正确道路。希望它将来能对其他人有所帮助。

关于javascript - JQuery表单验证: Error Message not displayed when there is escaped JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25291876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com