0

我想保存新输入的值,以便我可以重复使用它们。但是,当我尝试执行以下操作时,它不起作用:

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

当该行执行时,不会产生任何错误,但 Firebug 并没有显示el的 value 属性发生了变化。我也尝试了以下方法,但没有运气:

$(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.数据

于 2010-10-12T22:20:52.183 回答
1

如果您想要旧/初始文本框值,您可以使用如下单行代码。

var current_amount_initial_value = $("#form_id").find("input[type='text']id*='current_amount']").prop("defaultValue");

如果要在文本框中输入当前值,可以使用以下代码 $("#form_id").find("input[type='text']id*='current_amount']").val();

于 2014-03-06T07:46:07.740 回答