2017-02-10 9 views
0

shown.bs.modalイベントにどのようにパラメータを渡すことができますか?私は、ブートストラップ3.3.7を使用して、現在のだと私は以下のコードがありますshown.bs.modalにパラメータを渡すfunction()

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

名前または数値の値が変更されてもデータが更新されないため、data()ではなくattr()に変更する必要がありました。 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

私はJavaスクリプトの世界にしてnamenumberとしてあなたGSPから推測フィールド上を通過します。そこから、g.somethingとバインドする機能で、grails変数をJavaスクリプト変数とともに使用することは、例えば、与えられたURLをキャプチャして終了することによって、少し厄介なことが示唆した以上に不可能になります。

ので、代わりのものは、これがあるように思われるので、私はクラスにIDを変更し

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

お知らせをクリックしたときに

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

をクリックされているリンク要素IDを作成するような何かをやって同じIDを共有してはならない複数の行のインスタンスは、同じクラスを共有することができ、jqueryはどのクラス要素を使用するかを決定します。$(this)

関連する問題