0

次のような変数があります。

var cardholder = $("#cardholder");
var cardholderInfo = $("#cardholder-Info");

そして、次のような関数 (現在は機能しません):

function validateRequired(field){
    //if it's NOT valid
    if(field.val().length < 1){
        field.addClass("field_error");
        fieldInfo.text("(Required)");
        fieldInfo.addClass("error");

        return false;
    }
    //if it's valid
    else{
        field.removeClass("field_error");
        fieldInfo.text("");
        fieldInfo.removeClass("error");
        return true;
    }
}

私は次のようにアクセスします:

cardholder.keyup(validateRequired(cardholder));

どこでも探しましたが、必要なものが見つからず、何を検索すればよいかよくわかりません。

このfield値を使用して、ストレートcardholdervar にアクセスできます。しかし、関数内でその要素を操作できるように、field値を使用して参照したいとも考えています。cardholderInfo

4

4 に答える 4

3

2 番目のパラメーターを渡して、次のように関数を呼び出します。

cardholder.keyup(function () {
    validateRequired(this, cardholderInfo);
});

そして、2 番目のパラメーターを取るように関数を変更します。

function validateRequired(field, fieldInfo){
    /* validation stuff */
}
于 2013-05-08T14:51:04.510 に答える
1

バインドしたい関数を呼び出さないでください! 呼び出されるたびに引数を渡す必要がある場合は、bindまたは関数式を使用する必要があります。

cardholder.keyup(functio(e) {
    return validateRequired(cardholder, cardholderInfo);
});

また、変数を埋めるには、validateRequired関数に2 番目のパラメーターが必要です。fieldInfo

function validateRequired(field, fieldInfo){
    …
于 2013-05-08T14:52:12.323 に答える
1

キーアップで関数の参照を渡す必要があり、関数を呼び出す必要はありません

cardholder.keyup(function(){
    validateRequired(cardholder)
});
于 2013-05-08T14:52:47.740 に答える