0

我正在 Ruby on Rails 中创建一个 Web 项目。我有一个main.js文件存储在里面/app/assets/javascripts/,我在其中开发了一个小脚本来重置表单。

当我不在网上冲浪时,该脚本可以完美运行。如果我更改当前页面,脚本将不再工作。为了让它再次工作,我必须通过浏览器重新加载页面(使用Cmd+RF5)。

main.js脚本应该被编译并且应该在项目的所有页面中都可用,不是吗?

怎么了?

中的代码main.js

// Get rid of data in forms
jQuery.fn.reset = function () {
$(this).find("input, textarea, select").each (function() {
    if ($(this).is(':checkbox')) {
        $(this).prop('checked', false);
    }
    else {
        if (!$(this).is(':hidden') && !$(this).is(':submit')) $(this).val('');
    }
});
}

$(document).ready(function() {

    // Cancel button in forms
    $(".cancel").click(function() {
        $(document).reset();
    })
});

应用程序.js:

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_directory .
4

1 回答 1

1

Turbolinks 是“问题”。$(document.ready仅在整页重新加载时触发。你还需要倾听$(document).on('page:load', ...)

请参阅关于 OP 的评论 #3(上图)。

于 2013-09-13T01:14:47.433 回答