2011-08-01 9 views
0

私は2つのパラメータで私自身の確認ダイアログを作ろうとしています。jQuery&Rails 3 - コールバック

function myAlert(message, adr) { 
    jConfirm(message, 'Confirmation Dialog', function(answer) { 
     if (answer){ 
      window.location = adr; 
     } 

    }); 
} 

$(document).ready(function() { 
    $.rails.confirm = function(mess, mess2) { 
     return myAlert(mess, mess2); 
    } 
}); 

とビューで:

<%= link_to 'Delete', 
     {:controller => 'controller_name', :action => 'action_name'}, 
     :confirm => {"xxxxxxx", "aaaaaaaa"} %> 

、アラートメッセージに、私は次のようれます: xxxxxxxaaaaaaaa私が間違っているのは何

?なぜ私はxxxxxxxしか得られないのですか?文字列がマージされるのはなぜですか?

PS:最初のパラメータjconfirm機能は、ウィンドウを確認するメッセージを表示します。

答えて

1

私は:confirmが文字列の引数であると信じています。 :confirm => {"xxxxxxx", "aaaaaaaa"}は私が間違っていないと文法エラーを投げるので、少し驚いています。

あなたは2つのパラメータを渡したい場合は、別のデータ属性に保存して、独自の確認方法、このようなロールができます:

<%= link_to 'Delete', 
     :controller => 'controller_name', :action => 'action_name', :class => "confirm", 
     :data-foo => "bar", :data-bar => "foo" %> 

$('a.confirm').click(function(){ 
    return myAlert($(this).data('foo'), $(this).data('bar')); 
}); 

それとも、あなたの引数をカンマで区切るとJSを使用してそれらを分割します:

… :confirm => "foo,bar" … 

$.rails.confirm = function(message) { 
    var messageParts = message.split(','); 
    return myAlert(messageParts[0], messageParts[1]); 
} 
+0

愚かな質問 - 私はあなたの最初のヒントでそれを行うにしようとしていますが、私はエラーを取得しています**#のための未定義のローカル変数やメソッド 'バー」<#<クラス:0x1036b9f50>:0x1036b7bd8> * *(私は初心者です) – user1946705

+0

':data-foo'の代わりに': 'data-foo''を試してください。 – polarblau

関連する問題