2017-07-06 6 views
0

私はある種の電卓を持っています。私は入力に.num-pad_number.html()を挿入する必要があります。これを行う正しい方法です:私の入力にボタンの値を挿入する正しい方法(jQuery)

$("#num-pad").on("click", ".num-pad_number", function (event) { 
    $("#calc-input").val($("#calc-input").val() + $(this).html()); 
}); 

それはもっと便利で正しい方法かもしれませんか?私はその解決策にいくつかの不具合があります。 WebSocketでいくつかの操作をした後、 "電卓"はすべての数値を複製し始めます。たとえば、 "5"が必要ですが、 "55"が挿入されます。

+0

Input.val()と$(この)の.html()の両方のあなたの数の文字列を与えると、デフォルトでは、彼らは数字のように合計でない文字列として参加します。 '' 5 '+' 5 '=' 55 'not 10; – Fered

+0

クリックされているボタンの値を追加しますか? –

+0

'.text()'は '.html()'ではなくHTMLを追加するので、テキストコンテンツのみを使用します。 –

答えて

1

少し変更されました。 .html()の代わりに.text()を使用してください。より短いイベント機能。作業以下の例:

$('#num_pad .num-pad_number').click(function() { 
 
    $("#calc-input").val($("#calc-input").val() + $(this).text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input id="calc-input" type="text"/> 
 

 
<div id="num_pad"> 
 
    <button class="num-pad_number">1</button> 
 
    <button class="num-pad_number">2</button> 
 
    <button class="num-pad_number">3</button> 
 
    <button class="num-pad_number">4</button> 
 
    <button class="num-pad_number">5</button> 
 
    <button class="num-pad_number">6</button> 
 
    <button class="num-pad_number">7</button> 
 
    <button class="num-pad_number">8</button> 
 
    <button class="num-pad_number">9</button> 
 
</div>

関連する問題