3

現在、同じクラスを共有する多くの入力フィールドがあり、次のように、フォーカスアウトで入力された文字列をトリミングし、フィールドを結果で更新するイベントがありますinputField.blur

$('.inputField').blur(function() {
   var input = $.trim($(this).val());
   $(this).val(input);
});

HTMLは次のとおりです。

<div class='form'>
   <label>Email Address:</label>
   <input id='input_emailAddress' class='inputField' type='email' name='input_emailAddress'>
   <label>Confirm Email:</label>
   <input id='input_emailAddressConf' class='inputField' type='email' name='input_emailAddressConf'>
</div>

Firefox、Safari では問題なく動作しますが、Chrome では動作しません (IE については不明)。「更新」を強制するためにクラスを削除/再追加しようとしましたが、うまくいきませんでした。それは既知の問題ですか?良い/クリーンなソリューションが何であるか知りたいですか? ありがとう!

PS を編集 繰り返しますが、コード自体は正常に動作します。これは構文の問題ではありません。JSHint はすべて明確で、コンソールにエラーはありません。Chrome (ver 30.0+) でのみ機能しません。ありがとうございます。

4

3 に答える 3

2

3 つのブラウザすべてで連携しているように見える「醜い」回避策を見つけました。

内部に何もないクラスを CSSinput.refresh {}に追加し、次のコードを追加して強制的に更新します。

$(this).addClass('refresh').removeClass('refresh');
于 2013-10-16T22:03:00.177 に答える