gpt4 book ai didi

javascript - $(document).ready 导航到新页面时不会触发

转载 作者:行者123 更新时间:2023-11-29 20:52:15 24 4
gpt4 key购买 nike

我正在开发一个 Rails 应用程序并放置一些 js 以仅当用户在输入中输入某些内容时才启用提交按钮。然后,我使用 $(document).ready 来调用该函数。当我第一次加载应用程序时它工作正常。但是一旦我转到新链接,它就会停止工作。我一直在环顾四周,但建议的答案似乎都没有帮助。对此的任何帮助将不胜感激!

应用程序.js

//= require jquery
//= require popper
//= require bootstrap-sprockets
//= require rails-ujs
//= require turbolinks
//= require_tree .
//= require_self

// Global application events
var applicationHandler = (function() {
// Per Design specs, a submit button on a form should be disabled until all form fields are filled out
var verifyFormInputsBeforeSubmit = function() {
$('form input').on('keyup', function() {
var inputLengths = 0;
var allInputs = $('input:not([type="submit"]');

allInputs.each(function() {
if ($(this).val()) {
inputLengths += 1;
}
});

if (inputLengths == allInputs.length) {
$("input[type=submit]").removeAttr("disabled");
} else {
$("input[type=submit]").attr("disabled", "disabled");
}
});
};

return {
verifyFormInputsBeforeSubmit: verifyFormInputsBeforeSubmit
};
})();

$(document).ready(function() {
console.log("wee");
applicationHandler.verifyFormInputsBeforeSubmit();
});

我如何链接到新页面:

<%= link_to "Forgot password?", new_password_path(resource_name), class: 'small float-right' %>

应该注意的是,当我加载索引页面时,wee 出现在控制台上,但是当我转到忘记密码页面时,什么也没有显示。如果我刷新忘记的密码,我会在控制台中看到 wee 并且 js 会运行。

最佳答案

我相信这与 turbolinks 有关,页面实际上不会重新加载,因此您需要通过不同的事件运行您的代码: Rails 5: how to use $(document).ready() with turbo-links

关于javascript - $(document).ready 导航到新页面时不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328112/

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