このコードは、prototype.jsの1.6のために働いたが、1.7にアップグレードするので、私はエラーを取得:uncaught exception: Syntax error, unrecognized expression: [object HTMLInputElement]
prototype.jsの1.7キャッチされない例外:構文エラー、認識できない表現:[オブジェクトHTMLInputElementの]
document.observe('dom:loaded', function() {
$$('.validate-length').each(function(elem) {
var note = elem.next('.note');
var counter = new Element('span');
note.insert(counter);
var curLen = $(elem).getValue().length;
var maxLen = elem.className.match(/maximum-length-(\d+)/)[1];
var count = maxLen - curLen;
if (curLen >= maxLen) {
counter.update(' (-' + count + ')').setStyle({'color': 'red'});
} else {
counter.update(' (+' + count + ')').setStyle({'color': 'green'});
}
$$(elem).invoke('observe', 'keyup', function() {
var curLen = $(elem).getValue().length;
var count = maxLen - curLen;
if (curLen >= maxLen) {
counter.update(' (-' + count + ')').setStyle({'color': 'red'});
} else {
counter.update(' (+' + count + ')').setStyle({'color': 'green'});
}
});
});
});
は何かがあるようです間違っている:$$(elem).invoke('observe', 'keyup', function() {
助けをお待ちしています。
感謝。時間があれば、 'addMethods'ファクトリと'遅延オブザーバ 'パターンのコードを投稿してください。私はJSで頻繁には動作しませんが、何か新しいことを学ぶのはいいです:) – sv3n
私はいくつかの例で元の答えを更新しました。 – Walter
ありがとう!これは、他の小さなスクリプトを改善するのに役立ちます。 – sv3n