jquery设置输入val()并返回父html()得到空输入?

时间:2013-02-19 03:58:21

标签: javascript jquery

我创建一个函数来输入一些字段并返回html来显示:

function get_goodinput(GoodsSn, InCount, SellCount, Barcode, SinglePrice, BatchNo) {
        var $c = $('#t_addgoods_table').clone();
        $c.children("form").attr("id", "addgoods_form"); //id="t_addgoods_table"

        var $f = $c.children("form");

        $f.find("input[name='BatchNo']").val(BatchNo);
        $f.find("input[name='SinglePrice']").val(SinglePrice);
        $f.find("input[name='Barcode']").val(Barcode);
        $f.find("input[name='SellCount']").val("sssssssssssssssssssssss");
        alert($f.find("input[name='SellCount']").val());
        //this step can get the val..


        $f.find("input[name='InCount']").val(InCount);
        $f.find("select[name='GoodsSn']").val(GoodsSn);

        return $c.html();

    }

并显示在metroUI dialog

 $('#addgoods').click(function (e) {
     $.Dialog({
     'title' : '添加商品',
      'content' : get_goodinput("aaa", "aaa", "", "12", "12312", "aaaaa"),
                'draggable' : true,
                'buttonsAlign' : 'right',
                'closeButton' : true,
                'position' : {
                    'zone' : 'center',
                    'offsetY' : 100
                },
                'buttons' : {
                    '确定' : {
                        'action' : function () {

但我总是得到空输入......为什么??? enter image description here

html代码:= = enter image description here

1 个答案:

答案 0 :(得分:1)

表单不能是表的子表单,只有tr,tbody,thead,tfoot之类的元素可以是子表单。

如果表单位于表格内,则必须位于TD内,以便您可以使用find()代替children()

由于您将表的内部html而不是整个表放入非表元素中,因此您可能还会将无效的html导入到对话框中。 html()方法接受元素的innerHtml。

您可以将表格包装在DIV中并以正确方式插入表格:

return $('<div>').append( $c ).html();