[解決済み] IDに.(ピリオド)が含まれる要素をjQueryで選択させるには?
2022-04-21 08:16:08
質問
以下のクラスとコントローラのアクションメソッドがあるとする。
public School
{
public Int32 ID { get; set; }
publig String Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Street1 { get; set; }
public string City { get; set; }
public String ZipCode { get; set; }
public String State { get; set; }
public String Country { get; set; }
}
[Authorize(Roles = "SchoolEditor")]
[AcceptVerbs(HttpVerbs.Post)]
public SchoolResponse Edit(Int32 id, FormCollection form)
{
School school = GetSchoolFromRepository(id);
UpdateModel(school, form);
return new SchoolResponse() { School = school };
}
そして、次のような形です。
<form method="post">
School: <%= Html.TextBox("Name") %><br />
Street: <%= Html.TextBox("Address.Street") %><br />
City: <%= Html.TextBox("Address.City") %><br />
Zip Code: <%= Html.TextBox("Address.ZipCode") %><br />
Sate: <select id="Address.State"></select><br />
Country: <select id="Address.Country"></select><br />
</form>
SchoolインスタンスとAddressメンバの両方を更新することができるようになりました。 これはとても素晴らしいことです。 ASP.NET MVCチーム、ありがとうございました。
しかし、jQuery を使用してドロップダウンリストを選択し、事前に入力できるようにするにはどうすればよいでしょうか。 サーバーサイドでこれを行うことができることは理解していますが、ページ上にリストに影響を与える他の動的要素が存在することになります。
今のところ以下のような感じですが、セレクタがIDにマッチしていないようでうまくいきません。
$(function() {
$.getJSON("/Location/GetCountryList", null, function(data) {
$("#Address.Country").fillSelect(data);
});
$("#Address.Country").change(function() {
$.getJSON("/Location/GetRegionsForCountry", { country: $(this).val() }, function(data) {
$("#Address.State").fillSelect(data);
});
});
});
解決方法は?
から Googleグループ :
各特殊文字の前にバックスラッシュを2つ使用します。
jQueryセレクタのバックスラッシュは、次の文字をエスケープします。しかし バックスラッシュはJavaScriptのエスケープ文字でもあるため、2つのバックスラッシュを使用します。 の文字列があります。最初のバックスラッシュは2番目のバックスラッシュをエスケープし、実際に1つの バックスラッシュは、jQueryで次の文字をエスケープするために使用されます。
ということは
$(function() {
$.getJSON("/Location/GetCountryList", null, function(data) {
$("#Address\\.Country").fillSelect(data);
});
$("#Address\\.Country").change(function() {
$.getJSON("/Location/GetRegionsForCountry", { country: $(this).val() }, function(data) {
$("#Address\\.State").fillSelect(data);
});
});
});
こちらもチェック CSS記法で使用される文字を含むIDで要素を選択するにはどうすればよいですか? をjQuery FAQでご覧ください。
関連
-
Vueにシンプルなメモ帳機能を実装
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] jQueryで複数のクラスを持つ要素を選択するにはどうすればよいですか?
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
親子コンポーネント通信を解決する3つのVueスロット
-
JSアレイループと効率解析の比較
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み] テスト
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
jq は html ページとデータを動的に分割する。
-
[解決済み] HTMLのid属性に有効な値は何ですか?
-
[解決済み] IDセレクタにjQueryのドット?重複