将表行数据从对话框窗口传递到主页表

时间:2014-10-10 03:19:49

标签: javascript jquery html css

这是主页上的表格:

 <table>
        <th>Apple</th>
        <th>Ball</th>
        <tr>
            <td><input type="text" /></td>
            <td><input type="button" /><a href="#"></a></td>
        </tr>
         <tr>
            <td><input type="text" /></td>
            <td><input type="button" /><a href="#"></a></td>
        </tr>
    </table>

这是窗口对话框上的表格:

<table>
        <th>Apple on Dialog</th>
        <th>Ball on Dialog</th>
        <tr>
            <td>A1</td>
            <td>A2</td>
            <td>A3</td>
        </tr>
         <tr>
            <td>B1</td>
            <td>B2</td>
            <td>B3</td>
        </tr>
    </table>

看到这个FIDDLE,不是为了工作代码,而是为了想要的结果页面,因为我不知道如何在jsfiddle上创建窗口对话框,以便我的小提琴。谢谢大家。

2 个答案:

答案 0 :(得分:1)

请检查此JSFIDDLE

您必须将点击的btn标识保存/传递给对话框,以便它知道复制和粘贴内容的位置。希望jsfiddle给你一些想法

$(document).ready(function(){
    $('#1, #2').click(function(){
        window.clickedbtnid = $(this).attr('id');
        $( "#table_dialog_1" ).dialog();
    });
    $( "#table_dialog_1" ).find('td').click(function(){
        $('#'+window.clickedbtnid).parent().prev().find('input').val($(this).text());
        $( "#table_dialog_1" ).dialog('close');
    })
});

答案 1 :(得分:1)

您需要为第一个表格上的按钮添加点击事件,并将TD文本分配给按钮同一行的输入。

$(document).ready(function(){
    $('#1, #2').on('click', function(){
        $("#table_dialog_1").dialog();
        var id = $(this).attr('id');
        $('#table_dialog_1 td').unbind('click').on('click', function(){
            console.log('#input_'+id);
            $('#input_'+id).attr('value', $(this).html());
            $('#table_dialog_1').dialog('close');
        });
    });
});

unbind第一次点击事件中的点击事件,以删除之前的事件。

查看完整的working example

如果您需要使用弹出窗口而不是对话框,请按照此simple tutorial

进行操作

<强>更新

为了使用window.open(),在父窗口中输入以下javascript代码:

$('.clickMe').click(function(){
    clickedButton = this;
    $( "#table_dialog_1" ).dialog();
    window.button_clicked_id = $(this).attr('id');  
});

这个代码在子窗口中。

var the_button = window.opener.button_clicked_id;
var clickedButton = $('#'+the_button, window.opener.document);
$( '#table_dialog_1 tr').click(function(){
    var  tds = $(this).children();
    $(clickedButton).parent().prev().find('input').val(tds.eq(0).html());
    $(clickedButton).next('a').text(tds.eq(2).html()+','+tds.eq(1).html());
    $( "#table_dialog_1" ).dialog('close');
});