在jQuery对话框中创建链接

时间:2014-02-19 15:56:21

标签: jquery html jquery-easyui

这让我疯了。我现在已经开始对抗这个问题几天了,看起来这应该很简单。我有一个我正在构建的jQuery EasyUI页面,它有一个数据网格,当您选择并单击按钮以获取详细信息时会打开一个对话框。这工作得非常好。问题是我想在对话框的底部添加一个按钮链接以及“默认”保存和取消按钮。

这个新按钮实际上只是一个指向另一个页面的重定向链接,它将显示所有选择的详细信息,而不仅仅是信息的缩写位。这是打开对话框的代码,然后是下面的链接按钮的代码。

function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
    $('#dlg').dialog('open').dialog('setTitle','Prospect Details');
    $('#fm').form('load',row);
    url = 'update_user.php?id='+row.id;
    $('#dia_name').html(row.Name);
    $('#pd a').attr('href','prospect_details.php?phone=' + row.Phone);
    var phone = phoneFormat(row.Phone);
    $("#dia_phone").html(phone);
    if (row.message_duration > 0) {
        $('#hangup').hide();
        $('#message').show();
        $('#msg_txt').show();
    } else {
        $('#hangup').show();
        $('#message').hide();
        $('#msg_txt').hide();
    }
}

现在输入链接按钮的代码。

<a id="pd" class="easyui-linkbutton" iconCls="icon-search">More Details</a>

这真让我疯狂。我认为问题与调用editUser函数时不存在的链接按钮有关,因为它位于对话框窗口中。

1 个答案:

答案 0 :(得分:1)

正如我所提到的,如果<a id="pd" class="easyui-linkbutton" iconCls="icon-search">More Details</a>在您拨打editUser()时不存在,则jQuery Selector将不会提取任何内容。但是,我看到的另一个问题是你的选择器。

您确定您的意思是$('#pd a')吗?

这会使用ID pd提取一个元素,然后查找inner HTML的{​​{1}}标记,例如:

<a>

如果您想要标识为<div id="pd"> <a href="..."> 的{​​{1}}标记,则选择器所需的全部内容为<a>


可能的解决方案

如果在pd来电之前HTML中已存在$('#pd')标记,那么您需要调整的是:

a

先试试这个。如果这不起作用,那么在调用之前editUser()标记不存在,你应该追加它。正如你正在使用EasyUI一样,有几种方法可以做到这一点,尽管我怀疑前面有效。如果它没有:

最简单的可能是// CHANGE $('#pd a').attr('href','prospect_details.php?phone=' + row.Phone); // to $('#pd').attr('href','prospect_details.php?phone=' + row.Phone); 按钮,然后使用EasyUI的a方法样式

.append()

OR 您可以在创建对话框时创建按钮,但是您需要为所有对话框按钮执行此操作,例如:

linkbutton