3

ajaxを使用して処理されているブートストラップモーダルのフォームがあります。フォームが検証すると、モーダルが閉じられるか、期待どおりに検証エラーが表示されます。ただし、コントローラーに保持されているブール値に基づいて条件が満たされた場合は、モーダル非表示アニメーションの終了後にユーザーをリダイレクトしたいと思います。条件付きは記述どおりには機能しませんが、私が達成しようとしていることを確認できます。

$(document).ready(function() {
  $('#modal-window').modal({remote: true});
  $('#modal-window').modal('show');
  $('#modal-window').on('hidden', function(){
    var saved = <%= @bool %>;
    if(saved == "true"){
      $(window.location.replace("<%= some_url %>"));}
    });
})
4

3 に答える 3

3

ブール値に保存されている設定です(おそらく-varにあるものは何でも@bool

var saved = <%= @bool %>;

しかし、次に文字列と比較します "true"

if(saved == "true"){

したがって、2行目を次のように置き換えると

if(saved){

それはうまくいく

于 2013-01-31T12:06:12.993 に答える
1

交換

var saved = <%= @bool %>;

var saved = "<%= @bool %>";
于 2013-01-31T10:54:07.573 に答える
0

このコードはどこに投稿されていますか? index.html.erbを使用するときにフォームが下にある場合は、例で実行しようとしている JavaScript を提供するファイルがremote: true必要になります。また、リターン URL をlikeindex.js.erbでエスケープすることを忘れないでください。j<%=j some_url %>

于 2013-01-31T02:55:19.290 に答える