わかりました、そのような問題がありました...私はフィールドを検証するために必要なコードの量を減らそうとしています。この場合、イベントをバインドしたい要素のIDを使用して配列を作成しました。このような:
var fields = new Array('#edit-field-first-name', '#edit-field-last-name', '#edit-field-mobile');
次に、イベントをループでバインドします。
for(var i = 0; i < fields.length; i++){
if($('#user-profile-form ' + fields[i]).length > 0){
var $obj = $('#user-profile-form ' + fields[i]);
$obj.bind({
blur : function(){
if(!reg_chars.test($obj.val())){
$obj.css('border','1px solid #A14')
.parent().children('div.description').css('color', '#A14');
}else{
$obj.css('border-style','solid').css('border-color','#C5C3C3 #EDEDED #EDEDED #C5C3C3').css('border-width','1px')
.parent().children('div.description').css('color', '#333');
};
}
})
}
}
そして今、奇妙なことが起こります。「ぼかし」イベントを適切にトリガーしています。ただし、常に配列の最後の要素を参照しています。常に同じオブジェクトを使用していて、ループの反復ごとに上書きしているように見えます。
だから助けが必要です...解決策は何ですか?