2010-03-03 48 views
0

我对jQuery来说很新颖。jQuery UI问题。如何将参数传递给函数

如何将参数传递给函数? 我发现了一些jQueryUI的演示,除了“查看”链接,我得到它的工作。

我有一个传递参数并在模态弹出窗口中显示它们的问题。

我在页面上有“创建新用户”按钮和“查看”链接。点击“创建新用户”会传递参数并在模态弹出窗口中显示它们。 (“12345”用户ID文本框,“约翰·斯塔克斯”在用户名文本框)

$(function() { 
... 
    //Create New User button 
    $('#create-user') 
     .button() 
     .click( 
      function() { 
       $('#dialog-form').dialog('open'); 
       userId.val('12345'); 
       userName.val('John Starks'); 
      } 
     ); 
}); 

但是,“查看”链接不工作...点击“查看”链接做弹出没有模态窗口值(用户名和用户名)

function doView(idP, nameP) 
{ 
    $('#dialog-form2').dialog('open'); 
    userId.val(idP); 
    userName.val(nameP); 
} 

<a href="#" OnClick="doView('001','John Doe');" >view</a> 
... 

如何将参数传递给模态窗口?

在此先感谢。

+0

哇!你可以削减到涉及的代码? – 2010-03-03 12:51:00

+1

另外,它怎么不工作?它做什么/不做? – 2010-03-03 12:53:07

+0

你会得到任何错误? – 2010-03-03 13:01:19

回答

0

ajax()方法在jquery docs中描述得很好。它仅接受一个参数,即设置数组/对象,包括设置的键值对。该文档的

一个例子如下:

$.ajax({ 
    url: 'ajax/test.html', 
    success: function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
    } 
}); 

在源代码中调用(在最高层)缺少一个“url'设定,因此该方法不知道要查询的网址。您可以通过以下方式(只是一个例子)ajax的参数添加到您的来电:

url: 'ajax/test.php', 
    type: "GET", 
    data: ({id : idP, name : nameP}), 

所有代码untestet,但应该澄清事情有点:-)

编辑:我刚才看到你调用你的视图方法的ID和名称集,那么为什么你想要做一个Ajax调用?回收更多信息?然后你可以使用上面的代码并添加更多的参数。

如果你只是想利用这两个参数,并显示他们的对话中,下面应该是足够的(你已经有了摆在首位):

function doView(idP, nameP) 
{ 
    $('#dialog-form2').dialog('open'); 
    userId.val(idP); 
    userName.val(nameP); 
} 

编辑

了重写doView的方式如下:

function doView(idP, nameP) 
{ 
    $('#dialog-form2').dialog({ modal: true }); 
    userId.val(idP); 
    userName.val(nameP); 
} 

使用它和以前一样。

+0

(这不是Patrick,是jiji40。) – 2010-03-03 13:05:10

+0

感谢您的回答。 我现在明白如何使用“url”,“type”,“data”来传递参数。 如果我想打开一个带参数的模态对话窗口,它的工作原理是否一样? 也,只是调用funciton“doView”没有传递参数... – jiji40 2010-03-09 00:50:05