Javascript 重复的toastr错误消息

Javascript 重复的toastr错误消息,javascript,toastr,Javascript,Toastr,我正在使用toastr2.1JavaScript库来显示瞬时用户输入验证错误消息。我将preventDuplicates选项设置为true。它不起作用——当用户连续快速单击“验证”按钮(单击速度比“超时”快)时,我仍然会看到重复的消息 以下是我的默认设置: 函数getDefaults(){ 返回{ 塔普托迪斯:没错, 祝酒词课:“祝酒词”, containerId:“toast container”, 调试:错误, showMethod:'fadeIn'、//fadeIn、slideDown和s

我正在使用
toastr2.1
JavaScript库来显示瞬时用户输入验证错误消息。我将
preventDuplicates
选项设置为true。它不起作用——当用户连续快速单击“验证”按钮(单击速度比“超时”快)时,我仍然会看到重复的消息

以下是我的默认设置:

函数getDefaults(){ 返回{ 塔普托迪斯:没错, 祝酒词课:“祝酒词”, containerId:“toast container”, 调试:错误, showMethod:'fadeIn'、//fadeIn、slideDown和show内置于jQuery中 演出时间:300, showEasing:'swing'、//swing和linear内置于jQuery中 onShown:未定义, 隐藏方法:“淡出”, 受教育程度:1000, 隐藏:“挥杆”, onHidden:未定义, 延长超时时间:1000, i包括:{ 错误:“toast错误”, 信息:'吐司信息', 成功:为成功干杯, 警告:“敬酒警告” }, iconClass:“toast info”, positionClass:“右上角烤面包”, timeOut:5000,//将timeOut和extendedTimeOut设置为0以使其具有粘性 标题类:“祝酒词标题”, messageClass:“toast消息”, 目标:"身体",, closeHtml:“×;”, 纽斯托普:没错, 重复:正确, progressBar:错误 }; }
我是否需要进行任何其他更改以防止重复错误消息?

我和您有相同的要求。下面是我的实现。看看它是否能帮助你

函数hassamerortoastr(消息){
var hassamerrortostr=false;
var$toast container=$(“#toast container”);
如果($toastcainer.length>0){
var$errorToastr=$toastcainer.find('.toast error');
如果($errorToastr.length>0){
var currentText=$errorToastr.find('.toast message').text();
var areEqual=message.toUpperCase()==currentText.toUpperCase();
如果(相等){
hasSameErrorToastr=true;
}
}
}
返回HASSAMERRORTOSTR;
}
//用法
var消息='删除用户时出错';
如果(hasSameErrorToastr(消息)){
toastr.error(消息、标题、ERRORSTOASTROPTIONS);

}
我也遇到了同样的问题,结果是toastr preventDuplicates选项不适用于数组消息(当前版本2.1.1)。您需要使用join将数组转换为字符串。

我相信它能按预期工作

preventDuplicates: Prevent duplicates of the **last toast**.
也许这就是你要找的房子

preventOpenDuplicates: Prevent duplicates of open toasts.
这可能会有所帮助

var config = {
    maxOpened: 1,
    timeOut: 100
}
把它放在你的toastr配置中。它应该可以工作。opened toastr设置为1,timeout设置为100。

这可能会有帮助

toastr.options = {
"preventDuplicates": true,
"preventOpenDuplicates": true
};

toastr.error("Your Message","Your Title",{timeOut: 5000});

toastr.min.js中搜索
preventDuplicates
,然后进行更改

preventDuplicates:!1


将重复项:1添加到

toastr.options = {
  maxOpened: 1,
  preventDuplicates:1,
  autoDismiss: true
};

我也面临同样的问题,通过在我的模块文件中添加下面的代码来解决

ToastrModule.forRoot({
  maxOpened: 1,
  preventDuplicates: true,
  autoDismiss: true
})

此外,如果实现了延迟加载,那么您需要向父模块文件添加与我在我的app.module.ts中添加的代码相同的代码行。为什么用户要快速连续单击“验证”按钮?用户可以进行更改,然后再次单击“验证”按钮,此持续时间可能短于toastr消息超时。是否在此更新?你设法解决了这个问题吗?CodeSeven上的演示很好,但我似乎也无法在我的项目中使用它。对于任何想知道为什么toastr.min.js文件中没有这个的人来说,这似乎只是toastr的角度js端口,而不是vanillaYes,这对我很有帮助:this.toastr.toastrConfig.preventDuplicates=true;请不要在缩小的文件中编辑代码,您应该使用选项设置,如
toastr.options.preventDuplicates:true取而代之。如果在文件中编辑代码,然后更新文件,则代码将被删除。基本上,在这种情况下,您正在编辑核心文件。
ToastrModule.forRoot({
  maxOpened: 1,
  preventDuplicates: true,
  autoDismiss: true
})