2011-07-18 8 views
0

私はこの小さなコードを持っています。 Prototypeフレームワークを使用していますが、コールバック関数に要素をバインドできません。だから、私はこのような関数を書く必要があります。Prototype.jsコールバック関数コードを改善する方法

このコードを改善するにはどうすればよいですか?

Event.observe('firstname', 'keyup', function() { 
    var form = $('customerform'), 
     firstname_0 = form["firstname_0"]; 
    firstname.value = this.value; 
}); 
Event.observe('KundeNachname', 'keyup', function() { 
    var form = $('customerform'), 
     lastname_0 = form["lastname_0"]; 
    lastname_0.value = this.value; 
}); 

答えて

1
$('customerform')['lastname_0'].value = this.value; 

これは、1つに、コードのあなたの三行を凝縮。

+1

「$( 'customerform')['lastname_0']。value = this.value; '? – Kayla

+0

@tylermwashburnあなたは正しいです、ごめんなさい –

1

それぞれのコールバックの唯一の違いは、参照されるフォームフィールドの名前です。私はそのコードを共通のコールバック作成関数に抽出します:

function createHandler(fieldName) { 
    return function() { 
     $('customerform')[fieldName].value = this.value; 
    } 
} 

Event.observe('firstname', 'keyup', createHandler("firstname_0")); 
Event.observe('KundeNachname', 'keyup', createHandler("lastname_0")); 
関連する問題