JQuery & Rails 3 - обратный вызов - PullRequest
0 голосов
/ 02 августа 2011

Я пытаюсь создать свой собственный диалог подтверждения с двумя параметрами.

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 Ответ

1 голос
/ 02 августа 2011

Я считаю, :confirm только строковый аргумент.Я немного удивлен, потому что :confirm => {"xxxxxxx", "aaaaaaaa"} должен выдать синтаксическую ошибку, если я не ошибаюсь.

Если вы хотите передать два параметра, вы можете сохранить их в отдельных атрибутах данных и выдать свое собственное подтверждениеметод, что-то вроде этого:

<%= 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]);
}
...