Javascript 剔除safari验证错误
我被淘汰出局了,但我没有被淘汰出局。 我在safari/ios中遇到了奇怪的错误(windows chrome和android chrome-all ok)Javascript 剔除safari验证错误,javascript,google-chrome,knockout.js,safari,Javascript,Google Chrome,Knockout.js,Safari,我被淘汰出局了,但我没有被淘汰出局。 我在safari/ios中遇到了奇怪的错误(windows chrome和android chrome-all ok) origin:ko.observable().extend({ 所需:{ 消息:“需要源代码。” } }), var errors=ko.validation.group(本); var lineErrors=ko.validation.group(this.lines{ 深:是的, 现场直播:真的 }); console.log(1,er
origin:ko.observable().extend({
所需:{
消息:“需要源代码。”
}
}),
var errors=ko.validation.group(本);
var lineErrors=ko.validation.group(this.lines{
深:是的,
现场直播:真的
});
console.log(1,errors().length);
console.log(2,lineErrors().length);
在铬上我得到
1-0
2-0
在狩猎中我得到
1-2
2-0
我尝试更改ko.validation.group(这个,{deep:true,live:true})-没有影响
有错误的字段是带有typeahead的文本输入
为什么?
我必须知道Safari/knockout和Chrome/knockout的区别是什么?很难说你在这里想做什么,因为这段代码是断章取义的,但我将在这里摸黑 有可能你的台词中的“这个”
var errors = ko.validation.group(this);
…在Chrome中的解释与在Safari中的解释不同。Chrome可能认为它指的是一个对象,而Safari则认为它是另一个对象
Javascript中的“this”关键字非常棘手,应谨慎使用。确保引用的是您想要引用的确切内容的一种常见做法是将“this”赋值给其他某个范围内变量,然后您可以完全放心地引用该变量,即您所引用的是您认为自己是的内容。如果使用闭包或函数中的其他函数,这一点尤其重要。
例如
var someOuterFunction = function() {
var outerFunction = this;
var someInnerFunction = function() {
var innerFunction = this;
var doSomeWorkWithTheOuterAndInnerFunctions(outerFn, innerFn) {
//Perform some sort of work with your functions
}
//Call a function that performs some sort of work with your nested functions
doSomeWorkWithTheOuterAndInnerFunctions(outerFunction, innerFunction);
}
}
创建和使用outerFunction和innerFunction变量是关键。将“this”显式地设置为这些变量,然后使用这些变量将保证您将引用您认为是的东西
我希望这有帮助!:-) 我变了
到