0

新しく入力した値を保存して、再利用できるようにしたいと思います。ただし、次のことをしようとすると、機能しません。

// el is a textbox on which .change() was triggered
$(el).attr("value", $(el).val()); 

行が実行されると、エラーは生成されませんが、Firebug はelの値属性が変更されたことを示しません。私も次のことを試しましたが、うまくいきませんでした:

$(el).val($(el).val()); 

これを実行しようとしている理由は、jTemplates を使用してコンテナーに新しいコンテンツを追加するときに、テキスト ボックスの値を保持するためです。古いコンテンツは変数に保存され、コンテナの先頭に追加されます。ただし、テキスト ボックスに入力された値はすべて失われます。

var des_cntr = $("#pnlDesignations");
    old = des_cntr.html();
    des_cntr.setTemplate( $("#tplDesignations").html() );
    des_cntr.processTemplate({ 
                                Code: code, 
                                Value: val,
                                DivisionCode: div,
                                Amount: 0.00
                            });
    des_cntr.prepend(old);

これはテンプレートです:

<div id="pnlDesignations">
    <script type="text/html" id="tplDesignations">
        <div>
           <label>{$T.Value} $</label>
           <input type="text" value="{$T.Amount}" />
           <button>Remove</button>
           <input type="hidden" name="code" value="{$T.Code}" />
           <input type="hidden" name="div"  value="{$T.DivisionCode}" />
        </div>
    </script>
</div>
4

2 に答える 2

1

前の値を保存して次のchangeイベントで使用しますか?

この例では.data、前の値を保存するために使用します。jsFiddle を参照してください

$("input").change(function(){
    var $this = $(this);

    var prev = $this.data("prev"); // first time is undefined

    alert("Prev: " + prev + "\nNow: " + $this.val());

    $this.data("prev", $this.val()); // save current value
});

jQuery .data

于 2010-10-12T22:20:52.183 に答える