0

目前,如果用户没有登录,当用户按下按钮时,它会正确显示警报,然后继续实际提交。我希望它显示警报但然后停留在当前页面(即不直接到提交页面)。我怎样才能做到这一点?

<% if current_user %>
        <div class="form-actions">
            <%= f.button :submit, :class => "btn btn-info btn-large" %>
        </div>
    <% else %> 
        <%= f.button :submit, :class => "btn btn-info btn-large", :onclick => 'alert("You need to be logged in to add comments!")'%>
    <% end %>   
4

1 回答 1

1

在页面中添加一个 JS 函数,并编写以下代码:

<%= f.button :submit, :class => "btn btn-info btn-large", :onclick => 'submitAlert(event)'%>

JS 函数可能如下所示:

function submitAlert(e)
{
    e = e || window.event;
    alert('You need to be logged in to add comments!');
    if (e.preventDefault)
    {//most browsers
        e.preventDefault();
        e.stopPropagation();
    }
    e.returnValue = false;
    e.cancelBubble= true;
}

在此处了解有关停止事件的更多信息,这很有趣(并且很重要)

于 2013-04-29T23:14:48.547 回答