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 に答える