0

特定の行からjqueryで呼び出しているダイアログフォームに値をコピーしようとしていますが、正しく機能させることができません。(編集機能)。ダイアログボックスが開きますが、ei_Ingredientからの値は渡されません。上記の「成分の追加」機能は完全に機能します。以下は私のコードです、そしてあなたは私がこれまでに試した3つの方法を見ることができます...

    $(document).ready(function () {

        var _Ingredient = $('#ingHeader'),
            _newIngredient = $('#newIngredient'),
            _newMeasurement = $('#newMeasurement'),
            _newAmount = $('#newAmount'),
            allFields = $([]).add(_newIngredient).add(_newMeasurement).add(_newAmount)
        $('#dialog-form').dialog({
            autoOpen: false,
            height: 300,
            width: 350,
            modal: true,
            show: "clip",
            hide: "scale",
            speed: "fast",
            buttons: {
                "Add Ingredient": function () {
                    var _row = $('#templates').find('.row-template-ExistingItem').clone();
                    _row.find('.ei_Ingredient').val(_newIngredient.val());
                    _row.find('.ei_Measurement').val(_newMeasurement.val());
                    _row.find('.ei_Amount').val(_newAmount.val());
                    _row.find('.edit').click(function () {
                        _newIngredient.val();
                        _newMeasurement.val(_row.find('ei_Ingredient').val());
                        _newAmount.val($('.ei_Amount').val());
                        $('#dialog-form').dialog('open');
                    });
                    _row.find('.delete').click(function () {
                        _row.remove();
                    });

                    _Ingredient.append(_row);
                    $(this).dialog("close");
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            },
                close: function () {
                    allFields.val("");
                }
        });

テンプレート:

    <tr class="row-template-ExistingItem">
        <td><input class="ei_Ingredient"  readonly="true"/></td>
        <td><input class="ei_Measurement"  readonly="true" /></td>
        <td><input class="ei_Amount" readonly="true" /></td>
        <td><input type="button" value="Edit" class="edit" style="width:45px;" /></td>
        <td><input type="button" value="Delete" class="delete" style="width:45px;" /></td>
    </tr>

フォーム:

4

1 に答える 1

0

ああ、私はこれを理解しました。これは機能する行です:

_newMeasurement.val(_row.find('ei_Ingredient').val());

私の問題は、クラスの名前の前のピリオドを忘れたことです。そのはず:

_newMeasurement.val(_row.find('.ei_Ingredient').val());
于 2013-01-13T04:57:04.383 に答える