1

如果我有 2 个字段输入并且 #pricein 字段输入是用另一个脚本动态填充的数字。

<form>
    How much do you want to spend 
    <input type="text" readonly="readonly" id="pricein"/>
    <br /> 
    This is how much you will spend
    <input type="text" readonly="readonly" id="priceout"/> 
</form>

如何让 jquery 在该数字更改时读取该数字并将其显示在#priceout 字段中?触发它的 onclick 或按键将不起作用,因为它会在没有任何操作的情况下更改。谢谢!

4

4 回答 4

1

你可以使用 jQuery 的 change() 吗? http://api.jquery.com/change/

    $(function(){
       $("#pricein").change(function() {
          $("#priceout").val($(this).val());
       })
    })
于 2012-07-30T22:12:54.947 回答
1

由于您#pricein是动态创建的,因此您需要.on()委托事件绑定,如下所示:

 $("form").on("keyup", "#pricein", function() {
    $("#priceout").val( this.value ); // OR $(this).val()
 });

实时事件委托的语法.on()是:

$(StaticParent).on( eventName, target, handlerFunction )

其中,StaticParent是任何非动态且target元素的父级的选择器。

于 2012-07-30T22:14:24.860 回答
1

对于以编程方式更改的值,您无法通过事件检测到它。相反,与其他脚本的代码集成。如果它不受您的直接控制,请在其他脚本应该运行时运行您的代码。例如,点击某个元素。如果这是不可能的,并且另一个脚本确实不可预测,作为最后的手段,您可以使用计时器。

(function (){
    var lastValue = $("#pricein").val();
    setInterval(function() {
        if ($("#pricein").val() != lastValue)
            lastValue = $("#pricein").val();
            valueChanged();
        }
    }, 500);
})();
于 2012-07-30T22:39:44.897 回答
0

您可以访问初始脚本吗?如果是这样,您是否可以像这样触发 keyup 操作:

http://jsfiddle.net/WRMyX/1/ (谢谢,gilly3)

于 2012-07-30T22:37:00.503 回答