0

いくつかのフィールドを入力し、表示する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ダイアログに表示します

$('#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 () {

しかし、私は常に空の入力を取得します...なぜですか?

ここに画像の説明を入力してください

HTMLコード:

ここに画像の説明を入力してください

4

1 に答える 1

1

フォームをテーブルの子にすることはできません。のような要素のみを子にするtr,tbody,thead,tfootことができます。

フォームがテーブル内にある場合は、代わりにTD使用できるようにテーブル内にある必要がありますfind()children()

また、テーブル全体ではなくテーブルの内部htmlを非テーブル要素に配置しているため、無効なhtmlがダイアログに表示される可能性があります。html()メソッドは要素のinnerHtmlを取ります。

テーブルをDIVでラップし、テーブルを完全に挿入できます。

return $('<div>').append( $c ).html();
于 2013-02-19T04:14:37.927 に答える