我的页面上有这样的表格:
<form data-bind="submit: AddFolder"></form>
如果我的 JS 脚本中有这段代码(当然,我已经删除了所有不相关的代码并进行了测试,以确保我仍然可以仅使用此代码重新创建,通常您会在此处包含更多代码,例如 .get 和 .post功能):
Sammy(function() {
}).run();
提交表单后,页面会重定向到一个奇怪的 URL,例如?ko_unique=1
如果我从脚本中删除 Sammy 部分,这种情况就不会发生。我认为这与事件冒泡有关,Sammy 和 Knockout 都挂钩 onSubmit,并且浏览器只考虑最后调用的函数的返回值。
经过大量搜索,并没有在这里找到任何答案,我最终找到了这个:
https://groups.google.com/forum/?fromgroups#!topic/sammyjs/EYW-2Ygk3z8 https://groups.google.com/forum/?fromgroups#!topic/sammyjs/EYW-2Ygk3z8
并将我的代码修改为:
Sammy(function() {
// Override this function so that Sammy doesn't mess with forms
this._checkFormSubmission = function(form) {
return (false);
};
}).run();
这样,当在我的页面上提交表单时,Sammy 就不会尝试执行任何特殊操作。由于我使用的是 Knockout,因此我不打算将 Sammy 用于任何形式。如果你想要更复杂的代码或插件版本,你可以看到上面的 URL,但对我来说,我怀疑大多数使用 KO 的人,它的代码更少,并且更容易禁用这个 Sammy 功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)