【问题标题】:Update textBox2 text while typing text in textBox1在 textBox1 中键入文本时更新 textBox2 文本
【发布时间】:2014-07-02 21:25:35
【问题描述】:

我有 2 个文本框(例如货币转换器)

我想在输入 textbox1 时更新 textbox2 我应该使用哪个 jquery 函数?

CREDIT: <input type="text" id="credit"/>

USD: <input type="text" id="usd"/>

jquery:

    $("#credit").change(function () {
           $("#usd").val((parseInt($("#credit").val(), 10) * 2));
    });

http://jsfiddle.net/9ysC3/

现在美元价值更新失去焦点。

在我输入信用文本框时,我可以使用什么功能来更新美元价值?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您不应使用“更改”事件,而应使用“输入”事件来确定内容是否已更改。

    $("#credit").on('input', function () {
           $("#usd").val((parseInt($(this).val(), 10) * 2));
    });
    

    【讨论】:

    • 谢谢!这正是我一直在寻找的。欣赏它。
    • 如果你需要,别忘了接受答案:)
    • keyup 将在按下任何键(甚至是 ctrl、shift 等)时触发一个事件。 input 事件只会在内容更改时触发,因此更适合您的情况。
    【解决方案2】:

    input 事件比change 事件更具包容性/响应性:

    $("#credit").on('input', function () {
        $( "#usd" ).val( +this.value * 2 );
    });
    

    WORKING JSFIDDLE DEMO

    您也可以调整您的标记,以便它可以进行一些验证:

    CREDIT:
    <input type="number" id="credit" />
    <br/>USD:
    <input type="number" id="usd" readonly="readonly" />
    

    【讨论】:

      【解决方案3】:

      使用这个:http://jsfiddle.net/9ysC3/2/

      $("#credit").keypress(function () {
      $("#usd").val((parseInt($("#credit").val(), 10) * 2));
      });
      

      keyup 上同样有效。

      【讨论】:

        【解决方案4】:

        如 aa333 的答案中所写,但将 keypress 替换为 keyup 以使更新更具响应性:

        $("#credit").keypress(function () {
          $("#usd").val((parseInt($("#credit").val(), 10) * 2));
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多