ドキュメントがラジオ ボタンにロードされたときに、jQuery に onClick 関数をバインドさせようとしています。
ASP はデータベースに戻り、開いているすべてのマーカーを検索し、未加工の HTML を含む応答をページに送信して、ラジオ ボタンとマーカーの画像を作成します。私がする必要があるのは、jQuery (またはそれに関するもの) に onClick をバインドさせて、クリックされたものを知らせることです。これにより、そのmarkerId をデータベースに送り返して、それを人に添付することができます。
これは、私がこれまでに試したことの大まかなjsFiddleです。デバッグでは、各関数にアラートを追加しましたが、本来のように3倍表示されますが、attr('id')
未定義に戻ります。
これは、フォームにラジオ ボタンを配置する html です。
<br />
<p>Select open marker for new user:
<% getMarkers(); %>
</p>
これはその呼び出しのコードビハインドです
while (reader.Read())
{
if (readIndex % 3 == 0)
markerTable += "<tr>";
string markerId = reader["marker_id"].ToString();
string fileName = reader["marker_filename"].ToString();
markerTable += "<td><input type=\"radio\" name=\"openMarker\" value=\"" + markerId + "\" " +
"id=\"oMrk" + markerId + "\"><label for=\"oMrk" + markerId + "\"><img src=\"/Markers/" +
fileName + "\" /></label></input></td>";
readIndex++;
if (readIndex % 3 == 0)
markerTable += "</tr>";
}
if (readIndex % 3 != 0)
markerTable += "</tr>";
markerTable += "</table>";
}
else
markerTable = "<p>No empty markers. Please delete a user to continue.</p>";
sCon.Close();
return markerTable;
私が投稿したフィドルには、この関数からソースが貼り付けられています。
2 つの質問があります。
- これが機能しないのはなぜですか?jQuery セレクター ステートメントから 3 つの要素を取得して
$(document).ready()
います。属性が定義されていないのはなぜですか? - これを行うより良い方法はありますか?ページ変数に値を入れてから、ASP ボタンを使用してサーバーに送信し、ストアド プロシージャに送り返して、そのマーカーを別のフィールドからのテキストと共にデータベースに追加することを計画していました。onClick イベントを応答 html に追加できることはわかっていますが、私が行っていることが機能しない理由を理解する必要があります。
私はウェブにかなり慣れていないので、手続き的に的外れである場合は、提案をお待ちしています。