1

サイトのパーソナライズされた製品ページのコードを書き込もうとしています。私の目的は、ユーザーが個人的なメッセージを入力して製品にアクセスし、入力した文字数に基づいて jQuery を使用して価格を決定できるようにするテキスト ボックスを用意することです。次に、価格を画面に表示します。

どのリスナーを使用すればよいかわかりません。「キーアップ」は最初の文字が入力された後に停止するように見え、「変更」はユーザーがテキストボックスをクリックしたときにのみ機能します。ユーザーの入力に応じて価格を引き上げるコードが必要です。私が間違っている場所に関するヒントはありますか?

<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/jamesskyburz/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 セレクターに一致する ELEMENTS の量を取得することです。むしろjQuery("#phrase").val().length、入力された文字数を取得するために使用します。

于 2012-08-17T06:59:17.077 に答える
0

テキストボックスの値が更新された後に発生し(テキストボックスの値が更新される前に発生するのとは対照的に)keyupキーkeydownがアップした直後.changeにも発生するため(入力が失われたときにのみ発生するイベントとは対照的に)を使用します集中)。

1 つのキーに対してのみ発火するように見えることは、FarligOpptreden の答えが解決する別の問題です。

于 2012-08-17T06:58:51.250 に答える