2

「JavaScript Bible」という本でjavascriptについて学んでいるのですが、ちょっと苦手です。私はこのコードを理解しようとしています:

function checkIt(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        status = "This field accept only numbers."
        return false
    }
    status = ""
    return true
}

誰かが私に説明できますか?

4

2 に答える 2

3

コードの機能を説明してほしいだけだと思います。その場合は、以下を参照してください。

// Create a function named checkIt, which takes an argument evt.
function checkIt(evt) {

    // If the user has passed something in the argument evt, take it.
    // Else, take the window.event as evt.
    evt = (evt) ? evt : window.event;

    // Get the Character Code. It can be either from evt.which or evt.keyCode,
    // depending on the browser.
    var charCode = (evt.which) ? evt.which : evt.keyCode;

    // If the Character is not a number, the do not allow the user to type in.
    // The reason for giving 31 to 48 and greater than 57 is because, each key
    // you type has its own unique character code. From 31 to 48, are the numeric
    // keys in the keyboard.
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {

        // Give a status informing the user.
        status = "This field accept only numbers.";

        // Prevent the default action of entering the character.
        return false;
    }

    // Clear the status
    status = "";

    // Allow the user to enter text.
    return true;
}

ASCII コード リファレンス


(出典: cdrummond.qc.ca )


(出典: cdrummond.qc.ca )

PS:コードを編集して、欠落していたセミコロンを追加しました。;

于 2012-10-15T04:59:51.563 に答える
0

それは基本的に言います:

evt = (evt) ? evt : window.event

「evt」が値の場合は続行し、そうでない場合は window.event を evt に割り当てます。これは省略形の if ステートメントです

var charCode = (evt.which) ? evt.which : evt.keyCode

新しい変数を作成し、evt の子 ("which") が存在する場合は、新しく作成された変数に割り当てます。ない場合は、"evt" の子を割り当てます。"キーコード"

if (charCode > 31 && (charCode < 48 || charCode > 57)){
            status = "This field accept only numbers."
            return false
}

charcode が 31 よりも大きく、charcode が 48 よりも小さいか 57 よりも大きい場合は、続行します。文字列を var status に割り当て、関数を終了する false を返します (何か問題が発生したことを意味します)。

status = ""
return true

上記のステートメントですべてがうまくいった場合は、空の文字列を "status" に割り当て、すべてがうまくいったことを意味する true を返します。

于 2012-10-15T05:00:27.193 に答える