听取文本框中的更改

时间:2012-08-17 06:51:06

标签: jquery events textbox listener

我正在尝试为我的网站上的个性化产品页面编写一些代码。我的目标是有一个文本框,允许用户输入个人信息以继续产品,并使用jQuery根据输入的字符数确定价格。然后在屏幕上打印价格。

我不确定我应该使用哪个听众。 “keyup”似乎在输入第一个字符后停止,“change”仅在用户单击文本框时才起作用。我希望代码能够在用户输入时提高价格。关于我哪里出错的任何提示?

<script type="text/javascript" language="javascript">
     $(document).ready(function()  {
        jQuery("#phrase").change( function () {     
                 var length = jQuery("#phrase").length;
                 var price = length * 2.5;


                 jQuery("#price").html(price);
    });

});
</script>

jsFiddle这里:

http://jsfiddle.net/WVHaT/8/

4 个答案:

答案 0 :(得分:2)

$('#phrase').keyup(function() {
  var length = this.value.length * 2.5;
  $('#price').html(length);
});

http://jsfiddle.net/jameskyburz/WVHaT/

答案 1 :(得分:1)

更改您的代码
var length = jQuery("#phrase").length;

var length = jQuery("#phrase").val().length;

并致电jQuery("#phrase").keyup

答案 2 :(得分:1)

问题是jQuery("#phrase").length获得了与jQuery选择器匹配的ELEMENTS数量。而是使用jQuery("#phrase").val().length来获取输入的字符数量。

答案 3 :(得分:0)

我会使用keyup,因为在文本框的值更新后(与在文本框的值更新之前触发的keydown相比),被触发 直接在键之后<(与.change事件形成对比,仅在输入失去焦点时触发)。

它似乎只对一把钥匙开火是另一个问题,FarligOpptreden的答案解决了!