gpt4 book ai didi

javascript - 在 - jquery.validate 中定义全局变量不起作用

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

我正在尝试获取 jquery 验证插件中全局变量的值。

var typedWords = 1;
jQuery.validator.addMethod("wordCount",
function(value, element, params) {
typedWords = jQuery.trim(value).split(' ').length;
console.log(typedWords);
if (typedWords >= params[0] && typedWords <= params[1]) {
return true;
}
},
jQuery.format("Only {0} to {1} words allowed. You have entered " + typedWords + " words.")
);

然而,jQuery.format("仅允许 {0} 到 {1} 个单词。您已输入 "+ typedWords + "单词。") 中 typedWords 的值始终是 未定义

我该如何获取 typedWords = jQuery.trim(value).split(' ').length; 的值?

谢谢。

最佳答案

查看控制台错误,它告诉我 jquery.validate.js 中的 $.format 已被弃用。因此,只需将 $.format 更改为 $.validator.format,或者根据您的情况...

jQuery.validator.format("Only {0} to {1} words allowed. You have entered " + typedWords + " words.")

(不再需要将自定义消息包装在 $.validator.format() 中,因为完全忽略它没有什么区别。)

它现在可以工作,除了 typedWords 变量永远不会更新到超出您全局定义的 1 范围。这是因为初始化自定义方法后,自定义消息中唯一可以动态更改的部分是 {0}{1} 处的参数。

演示:http://jsfiddle.net/JRgN7/

但是,如果您将 typedWords 分配给另一个名为 params[2] 的参数,则可以在消息中使用 {2}正确更新自身。

var typedWords = 1;
jQuery.validator.addMethod("wordCount", function (value, element, params) {
typedWords = jQuery.trim(value).split(' ').length;
params[2] = typedWords;
console.log(typedWords);
if (typedWords >= params[0] && typedWords <= params[1]) {
return true;
}
},
jQuery.validator.format("Only {0} to {1} words allowed. You have entered {2} words."));

演示:http://jsfiddle.net/JRgN7/1/

现在我们可以只使用 params[2] 并完全消除全局 typedWords 变量。此外,不再需要将自定义消息放入 jQuery.validator.format() 中。

jQuery.validator.addMethod("wordCount", function (value, element, params) {
params[2] = jQuery.trim(value).split(' ').length;
if (params[2] >= params[0] && params[2] <= params[1]) {
return true;
}
},
"Only {0} to {1} words allowed. You have entered {2} words.");

最终工作演示:http://jsfiddle.net/JRgN7/3/

关于javascript - 在 - jquery.validate 中定义全局变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23884071/

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