2017-02-10 8 views
0

Как передать параметры show.bs.modal event? Я ток с помощью Bootstrap 3.3.7 и у меня есть следующие коды:Передача параметров функции показанной.bs.modal()

function openAppForm(name, number) { 

     $("#form-content").modal({cache:false},'show'); 

}; 

$("#form-content").on("shown.bs.modal",function (<<PASS name and number here>>) { 
        document.getElementById('apply-frame').src="${g.createLink(controller: "apply", action: "index")}?name=" + name + "&number=" + number; 
      }) 

Благодарность

ответ

1

Эти атрибуты можно хранить в самом элементе, а затем обращаться к ним с помощью функции данных. Вот как это делается на Bootstrap docs.

function openAppForm(name, number) { 
    $("#form-content").attr("data-name", name); 
    $("#form-content").attr("data-number", number); 
    $("#form-content").modal({cache:false},'show'); 
}; 

$("#form-content").on("shown.bs.modal", function() { 
    var name = $("#form-content").data("name"); 
    var phone = $("#form-content").data("number"); 

    $("#apply-frame").attr("src", "${g.createLink(controller: "apply", action: "index")}?name=" + name + "&number=" + phone; 
}) 
+0

спасибо! all good now – SpongebobJunior

+0

Пришлось изменить его на attr() вместо data(), потому что данные не обновляются, когда значения для имени или номера меняются. http://stackoverflow.com/questions/21588044/jquerys-data-attribute-does-not-update-when-element-data-changes – SpongebobJunior

1

Я уверен, что есть более элегантные способы, но вы можете попробовать что-то вроде этого;

var modalShow; 
function openAppForm(name, number) { 
    modalShow = function(name, number) { 
     document.getElementById('apply-frame').src="${g.createLink(controller: "apply", action: "index")}?name=" + name + "&number=" + number; 
    }; 

    $("#form-content").modal({cache:false},'show'); 
};   

$("#form-content").on("shown.bs.modal", showModal); 
1

при прохождении над полями Я полагаю, из вашего GSP, как name, number в к миру Java Script. Оттуда по функциональности для привязки с g.something переменная grails с переменной java-скрипта становится невозможной, за исключением того, что предложило несколько попыток захвата и окончания, например, заданного URL-адреса.

Так вместо того, чтобы делать что-то подобное создать ссылку элемент идентификатор, который в настоящее время нажатия

<div class="form-content" 
data-url="${g.creatLink(controller:controller,action:action,params:[name:name,number:number]);"> 

затем при нажатии

$('.form-content').on('click', function() { 
    var url = $(this).attr('data-url') 
    //now giving it full url 
    openAppForm(url) 
}) 

Примечание я изменил идентификатор класса, так как это, как представляется, экземпляр нескольких строк, которые не должны использовать один и тот же идентификатор, они могут совместно использовать один и тот же класс, и jquery будет определять, какой элемент класса из $(this)