1

我正在尝试为我网站上的个性化产品页面编写一些代码。我的目标是有一个文本框,允许用户输入个人消息以继续使用产品并使用 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

4 回答 4

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

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

于 2012-08-17T06:57:23.860 回答
1

更改您的代码

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

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

并打电话jQuery("#phrase").keyup

于 2012-08-17T06:57:52.583 回答
1

问题是jQuery("#phrase").length获得匹配 jQuery 选择器的元素数量。而是用于jQuery("#phrase").val().length获取输入的字符数。

于 2012-08-17T06:59:17.077 回答
0

我会使用keyup,因为它是在文本框的值更新keydown触发的(与在文本框的值更新之前触发的相反)以及在键启动后直接.change触发(与仅在输入丢失时触发的事件相反重点)。

它似乎只为一个键触发是另一个问题,FarligOpptreden 的答案解决了这个问题!

于 2012-08-17T06:58:51.250 回答