初めてjqueryを使い始めたばかりなので、自分のやっていることが正しいかどうかわかりません。私がやろうとしているのは非常に基本的なことです。MVCビューでのロード時にテキストボックスにcss透かしを追加するスクリプトがあります。
要素を選択するには、次のようにします。
jQuery(document).ready(function(){$('#Department.DeptName').addWatermark('input-watermarked', 'test');});
次に、cssウォーターマーククラスを追加するためのスクリプトでは、「this.val()。length」ステートメントで失敗します。
jQuery.fn.toggleWatermark = function(watermarkedClass, watermarkText) {
if (this.hasClass(watermarkedClass)) {
this.removeWatermark(watermarkedClass);
}
else if (this.val().length == 0) {
this.addClass(watermarkedClass);
this.val(watermarkText);
}
}
要素IDが「DepartmentDeptName」の場合、スクリプトは正常に機能します。要素IDにドットが含まれていると、セレクターが機能しないかのようになります。この問題を回避する理由または方法を誰かが知っていますか?
ドットを2つのバックスラッシュでエスケープする必要があると思います:$("#Department\\.DeptName")
here を参照してください。
クラスDeptName
を使用して#Department
にアクセスしようとしています。 (Jorilが言ったように)2つのバックスラッシュで脱出する必要があります。
詳細については、 JQuery Selectors を参照してください。
JQueryの記述を制御できる場合は、$("input[name='department.deptname']")
などの代替構文が機能します。剣道でSpringMVCを使用しているため、jQueryコードにアクセスできません。 Spring MVC <form>
タグは、該当する場合は常に.
を自動的に配置します。例えば。ユーザーが住所を持っている場合..したがって、フィールド都市はuser.address.city
(またはaddress.city
)になります。そして、Spring MVCを複数の形式に分割すると、バックエンドロジックが台無しになります。また、単一のフォームであるはずだったものを分散させます。もう1つの方法は、バックエンドのUser
オブジェクトをフラット化することです...これも、あまりクリーンではありません。確かではありませんが、Dojoはそのようなシナリオで働いていました。