Javascript 将SweetAlert2添加到update.js.erb
我一直在开发我的rails应用程序——我对rails还比较陌生,并试图熟悉javascript。 所以,我刚刚通过Webpacker添加了SweetAlert2,它运行良好。 我有一个表单,我正在通过Javascript提交,它也在工作 以下是我的控制器操作: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|
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中没有执行任何代码,例如警报就起作用。我需要导入的第三方库不需要