Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将SweetAlert2添加到update.js.erb_Javascript_Ruby On Rails_Ruby_Erb - Fatal编程技术网

Javascript 将SweetAlert2添加到update.js.erb

Javascript 将SweetAlert2添加到update.js.erb,javascript,ruby-on-rails,ruby,erb,Javascript,Ruby On Rails,Ruby,Erb,我一直在开发我的rails应用程序——我对rails还比较陌生,并试图熟悉javascript。 所以,我刚刚通过Webpacker添加了SweetAlert2,它运行良好。 我有一个表单,我正在通过Javascript提交,它也在工作 以下是我的控制器操作: def update @user = @card.user day = Date.today if @card.update(card_params) respond_to do |format|

我一直在开发我的rails应用程序——我对rails还比较陌生,并试图熟悉javascript。 所以,我刚刚通过Webpacker添加了SweetAlert2,它运行良好。 我有一个表单,我正在通过Javascript提交,它也在工作

以下是我的控制器操作:

def update
    @user = @card.user
    day = Date.today
    if @card.update(card_params)
      respond_to do |format|
        format.js {}
    end
  end
end 
因此,当执行此操作并提交表单时,我将从我在application.JS中导入的index.JS文件调用一个JS函数

Index.js:

import swal from 'sweetalert2'
import Rails from '@rails/ujs'

$(function() {
    $('#vollkostForm').submit(function(){
            swal.fire({
                title: "Bestellung abgeschlossen!",
                text: "Die Mahlzeit wurde erfolgreich bestellt",
                type: "success"
            });
        $('#vollkostModal').modal('hide');
    });
});
这工作正常,警报正在显示。 但是我想要实现的是(因为只有表单成功提交时才应该运行),该函数位于相应的update.js.erb文件中,该文件属于
format.js{}

我尝试了所有方法,但是我不知道如何将这个SweetAlert库导入update.js.erb

我总是收到错误消息“swal未定义”-如果我只是使用类似于alert(“Hello!”)的东西,这就可以了

我就是不能使用或导入第三方插件来工作


谢谢你的建议!:)

你的表格在哪一页?它在索引页上吗?如果是这样,那么JavaScript代码将需要位于
index.js
中,而不是
update.js
。您不能让JavaScript代码在表单提交后检查表单是否已提交


这是否回答了您的问题?

您可以创建一个函数,并将其保存在application.js等公共文件中,并在需要时调用该函数。因此,您不需要到处导入sweetalert2

function popupSweetAlert(title, text, type) {
  swal.fire({
    title: title,
    text: text,
    type: type
  });
}

我希望,这对您有帮助。

嘿,Index.js只是我的其他SweetAlert等代码所在的文件。它位于Javascript/packs目录中,因此与我的操作无关。这个名字有点误导人,对不起。在update.js.erb中,我只想调用swal.fire方法,然后它告诉我swal没有定义。如果我尝试像在Index.js中那样导入它,不幸的是它不起作用。正如我所说:问题不是update.js.erb中没有执行任何代码,例如警报就起作用。我需要导入的第三方库不需要