如何将参数传递给shown.bs.modal事件?我目前正在使用Bootstrap 3.3.7,我有以下代码:
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;
})
由于
答案 0 :(得分:2)
当遍历字段时,我从您的gsp中假设name
,number
进入java脚本的世界。从那里开始与g.something
绑定的功能一个grails变量和一个java脚本变量变得不可能超出了稍微过去通过捕获和结束例如给定URL所建议的。
所以不要做那样的事情而是创建链接正在点击的元素id
<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)
})
注意我将id更改为class,因为这似乎是多行的实例,不应该共享相同的id,它们可以共享同一个类,jquery将计算$(this)
中的哪个类元素
答案 1 :(得分:2)
您可以将这些属性存储在元素本身上,然后使用数据功能访问它们。这是在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;
})
答案 2 :(得分: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);