1

関数が機能していません。「入力」に値を入れていません。

function example(id){
    this.code= function(){$('.'+id).val(id)}
    this.validate= function (){
        $('.'+id).keyup(function (e){
            if(e.keyCode==13) this.code();
        })
    }
}

<input type="text" class="test"/>
<input type="text" class="test1"/>
<script type="text/javascript">
    var test= new example('test')
    var test1= new example('test1')
    test.validate()
    test1.validate()
</script>
4

2 に答える 2

4

keyup イベント ハンドラーには、別の "this" があります。bind を使用して問題を修正できます

keyup(function (e){
if(e.keyCode==13) this.code();
}.bind(this))

イベントにバインドすると、イベントを作成したオブジェクトではなく、イベントを発生させたオブジェクトに設定された「this」キーワードでハンドラーが呼び出されます。

于 2013-07-31T13:07:48.833 に答える