4

.val() を使用してテキストボックスの値を取得しようとしていますが、常に「未定義」と表示されます。以下は私が使用しているコードです。友達を助けてください。

<asp:TextBox runat="server" ID="txtComment" Width="650" />

<asp:Button runat="server" ID="btnSubmitComment" Text="Submit" />

$(document).ready(function () {
    $('input[id$=btnSubmitComment]').click(function () {
    var comment = $("#txtComment").val();
    alert(comment);
});
4

3 に答える 3

5

asp.net は、要素の返されidた . クリックステートメントで使用しているようです。これを試しましたか?

$(document).ready(function () {
    $('input[id$=btnSubmitComment]').click(function () {//you are using the [id$=] selector here.
    var comment = $("input[id$=txtComment]").val();//use it here too
    alert(comment);
});

または、 を使用することもできますが<%= txtComment.ClientID %>、個人的には使用したことがありません。クライアント側が適切な場所に配置されるように、JavaScript ファイルをページに埋め込むように asp.net に指示する必要があると思いますid。この潜在的な解決策へのリンクを探します。

于 2012-11-12T12:33:21.533 に答える
3

.net が HTML をレンダリングすると、texbox の ID は ct_001_txtComment のようなものになります。

  • css クラスを追加して、クラスから値を取得できます。
  • または、web.config の次のオプションを変更して、ページ要素で ID を静的にすることもできます。

    controlRenderingCompatibilityVersion="4.0" clientIDMode="Static"

  • または、次のようにクライアント ID から取得することもできます: <%=txtComment.ClientID%>

于 2012-11-12T12:34:53.070 に答える
1

asp.net での標準的な方法の 1 つは、レンダリングされた ID を取得し、それを JavaScript で次のように使用することです。

$(document).ready(function () {
    $('#<%=btnSubmitComment.ClientID%>').click(function () {
    var comment = $('#<%=txtComment.ClientID%>').val();
    alert(comment);
});

(IDを使用した瞬間から、css、タイプなどのコントロールを選択するために他の方法を使用しないでください.

于 2012-11-12T12:39:20.093 に答える