【问题标题】:Why is return needed for onclick confirmation button for submit_tag为什么 submit_tag 的 onclick 确认按钮需要返回
【发布时间】:2019-05-14 20:39:31
【问题描述】:

我正在使用 Ruby on Rails submit_tag 在我的网站上提交 HTML 表单。这是我提交标签的代码:

= submit_tag "Increase Limits", { onclick: "return confirm('are you sure?')", class: "btn btn-danger"}

这是在我的.haml 页面内。我的理解是 confirm() 调用只是 Javascript 的 window.confirm() 的包装。为什么return 是必要的?根据这个 SO question 我应该可以在没有 return 关键字的情况下使用 confirm() 吗?

在我的 rails-root/app/assets/javascripts/application.js 文件中,如果相关的话,我有 //= require rails-ujs 行。

【问题讨论】:

    标签: javascript ruby-on-rails-5


    【解决方案1】:

    onclick 方法返回false 时,它会阻止事件的默认操作。点击提交按钮的默认操作是提交表单。

    如果不使用return,则该方法不会返回值,因此无论用户如何回答确认对话框,都会执行提交操作。

    【讨论】:

    • 是的,这基本上返回了confirm()函数的返回值:truefalse。您可以阻止/继续提交。你也可以使用 Rails data: {confirm: 'are you sure?'}
    • 明白了。我在我的控制器中创建了一个字符串,例如@confirmation_msg = .........,在我看来我有onclick: "return confirm(#{@confirmation_msg})",但是这不会显示消息,而是确认弹出窗口是空白的。你知道这是为什么吗?
    • 我不知道 RoR,所以我对那个语法无能为力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多