0

Web ページに HTML 電卓があります。私がやろうとしているのは、inputフィールドを選択し、番号付きdivの要素をクリックして値を入力することですが、 をクリックしたinputdiv、 にフォーカスが移りますdiv。jQueryを使用してこれを防ぐにはどうすればよいですか。

HTML電卓

次のフィドルでは、入力要素をクリックして値を入力しようとすると、フォーカスが離れることがわかります! これを修正して、関連する値を入力フィールドに記録するにはどうすればよいですか?

4

2 に答える 2

0

これが非常に遅いことはわかっていますが、他の誰かがこの回答を見に来たら役立つかもしれません.

@anil が言ったように、フォーカスされた入力を保存できる変数を作成します。次に、入力に集中したら、要素を変数に格納します。「キーパッド」をクリックすると、値が取得され、フォーカスされた変数の入力値に追加されます。

これが、元のフィドルから分岐した私のフィドルです

これはコードです:

var focused;
// Stored the input
$('input').focus(function() {
    focused = $(this);
});

// Listen for clicks on the number button
$('.num-button').click(function(){
    // Get the value of the number button that was clicked as string
    var intVal = $(this).find('span').text().toString();
    // Make sure that we have a focused input
    if(typeof focused != 'null' || typeof focused != 'undefined') {
        // Only add numbers to the input field
        if(intVal != "DONE" && intVal != "Del") {
            // Get the values as strings
            var curVal = focused.val().toString(),
                newVal = curVal + intVal;
            focused.val(newVal);
        } else if (intVal == "Del") {
            // Clear the value if the Del "key" was clicked.
            focused.val('');
        }
    }
});
于 2015-10-15T14:18:47.863 に答える