2010-10-12 79 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 ();