2010-10-12 80 views
0

我想保存新輸入的值,以便可以重複使用它們。但是,當我嘗試做以下,這是行不通的:使用jQuery保存文本框的值

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

當行執行,也不會產生錯誤,但螢火蟲不表明值屬性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> 
+3

咦?您正試圖將輸入字段設置爲其當前值? – 2010-10-12 22:16:26

+0

我修改了帖子,以更好地解釋我在這裏嘗試完成的內容。這種說法是否能夠澄清? – alkos333 2010-10-13 02:16:10

回答

1

要保存以前的值,並在接下來的change事件中使用?

本示例使用.data來保存以前的值。 See on 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

1

如果你想老/初始文本框中的值,可以按如下方式使用單行代碼。 (「#form_id」)。find(「input [type ='text'] id * ='current_amount']」)。prop(「defaultValue」);

如果你想在文本框中輸入電流值,可以使用下面的代碼 $( 「#form_id」)。找到( 「輸入[類型= '文本'] ID * = 'current_amount']」)。VAL ();