0

私は単純な10進数から2進数へのコンバーターを持っています。

テキストボックスに10進数を入力し、ボタンをクリックして結果を取得しますが、自動で実行したいので、毎回送信ボタンをクリックする必要はなく、自動的に更新されます。私のコードは次のとおりです。

<div id="Conv" style="font:24px bold; display: none">
Decimaal naar binair.<br>
    <input type="text" id="txtDec" maxlength="3"/>
    <input type="button" value="Convert" onclick="document.getElementById('Converter2').innerHTML=ConvertToBinary(document.getElementById('txtDec').value);" />
    <span id="Converter2"></span>
</div>

そして、ここにJavaScriptの部分があります:

function ConvertToBinary(dec) {
    var bits = [];
    var dividend = dec;
    var remainder = 0;
    while (dividend >= 2) {
        remainder = dividend % 2;
        bits.push(remainder);
        dividend = (dividend - remainder) / 2;
    }
    bits.push(dividend);
    bits.reverse();

    return String('000000000' + bits.join("")).slice(-8);


}
4

5 に答える 5

0

コードをonkeyupで実行できます

<input type="text" id="txtDec" maxlength="3" onkeyup="convert(this)" />

function convert(el) {
    document.getElementById('Converter2').innerHTML=ConvertToBinary(el.value);
}
于 2013-10-23T21:03:46.727 に答える
0

.keyup()テキストボックスのイベントで変換を処理します

$('#txtDec').keyup(function(e) {
    var converted = ConvertToBinary(this.value);
    $('span#Converter2').text(converted);
});
于 2013-10-23T21:04:04.070 に答える
0

このタスクが JavaScript のみを学習するためのものである場合、提案されたオプションで十分であると思います。それ以外の場合は、いくつかの一般的な注意事項を追加させてください。input や textarea などの標準フォーム要素を使用している場合は、マウスを使用してテキストを挿入できます (つまり、右クリック -> 貼り付け)。このように、キーアップのみを処理するだけでは不十分です。mouseup をリッスンしてすべてのマウスクリックを処理することも、あまり良い考えではありません。プログラムでフィールドを変更するのはどうですか?

最良の方法は、内部値を変更し、要素が「フォーカスされていない」ようになるたびにトリガーされる onchange イベントを処理することだと思います。

于 2013-10-23T22:03:06.250 に答える