1
var output = $('#output');

function NumberButtClick()
 {
$('.numberButt').click(
    function ()
    {
        if(output.val() === '')
        {
         output.val(this.value);        
        }

        else
        {
            var entered = output.val();
            entered = entered + this.value;
            output.val(entered);
        }
    }
);

ifブロックは正常に機能し、テキストボックスに値を出力します(出力はテキストボックスです)。しかし、もう一度番号ボタンを入力すると。else ブロックは機能せず、出力をそのままにしておくだけです

4

3 に答える 3

0

私がテストしたことから、コードの背後にあるアイデアは機能します:フィドル (元のコードは実際に文字列を連結します:フィドル)。

var output = $('#output');

$('.numberButt').click(
    function ()
    {
        if(output.val() === '')
        {
         output.val(this.value);        
        }

        else
        {
            var entered = parseInt(output.val(), 10);
            entered = entered + parseInt(this.value, 10);
            output.val(entered);
        }
    }
);

コードのどの部分で関数を呼び出しますNumberButtClick()か? あなたのhtmlはどのように設定されていますか?

于 2013-10-08T08:16:12.327 に答える
0

どうですか :

 $('.numberButt').on('click', function ()
    {

        output.val(( output.val()? output.val():'' ) + $(this).val());

     });

edit : 関数 numberbuttonclickwhatever の代わり (関数内のクリック イベント ハンドラーの代わりだけではない) を意味するため、jQuery(function($,undefined) {})

于 2013-10-08T08:14:05.760 に答える
-1

するのを忘れた

var output = $('#output');
$('.numberButt').click(
function ()
{
    if(output.val() === '')
    {
     output.val($(this).val());        // i think you forget $ 
    }

    else
    {
        var entered = output.val();
        entered = entered + $(this).val(); //also here
        output.val(entered);
    }
}
于 2013-10-08T08:09:47.590 に答える