2 種類の「ヒント」コード (透かしまたはプレースホルダー テキストとしてよく知られています) があります。フィールドの値を置き換えるものと、入力の上に何らかの要素を配置して、テキストが入力内にあるかのように見せるものです。
最初の種類を使用していると思われるので、単純な (そして最善の) 解決策の 1 つは、これらの種類を完全に避けて、2 番目の方法を使用するプラグインに切り替えることです。このように動作するプラグインはたくさんありますが、その動作をよく読んでください。
ヒント コードを変更できない場合は、他に 2 つの選択肢があります。どちらも理想的ではありませんが、おそらくどちらかの方が適しているでしょう:
送信時に値をクリア
ヒントコード内submit
で、フォームのイベントにバインドし、すべての入力をループして、ヒントと同じ値を持つものをクリアします。
このメソッドの問題は、検証プラグインが初期化される前に実行する必要があることです。入力時にフィールドを検証する場合にも機能しません。また、ヒント テキストを元に戻すには、検証後に入力を再度確認する必要があります。
.val() をオーバーライドする
検証プラグインは jQuery を使用するため、jQuery の.val()
関数をオーバーライド''
して、値がヒントと等しい場合に返すことができます。
var oldVal = $.fn.val;
$.fn.val = function () {
var returnVal = oldVal.call(this);
if (returnVal == hintVal) returnVal = '';
return returnVal;
};
これの明らかな欠点は、プラグインが.val()
入力値を取得するために常に を使用する必要があることです。