我正在尝试为我的网站上的个性化产品页面编写一些代码。我的目标是有一个文本框,允许用户输入个人信息以继续产品,并使用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这里:
答案 0 :(得分:2)
$('#phrase').keyup(function() {
var length = this.value.length * 2.5;
$('#price').html(length);
});
答案 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的答案解决了!