2015-09-15 67 views
2

我有一個表單,當滿足某些條件時,它將調用一個JQuery UI彈出窗口。我需要做的是,按下OK按鈕時,將彈出窗口的文本框中的內容寫入窗體上的隱藏文本框。這可能嗎?這似乎像我只需要調整我的彈出一點:從JQuery UI彈出窗口獲取數據返回到表格

<script type="text/javascript"> 
    //Total out of range dialog 
    $(function() { 
     $("#dialog2").dialog({ 
      modal: true, 
      autoOpen: false, 
      width: 570, 
      buttons: { 
       "Ok": function() { 
        //I would think I just need a little code here which 
        // writes the value inside the textbox to the hidden 
        // textbox on the form? 
        $(this).dialog("close"); 
       } 
      } 

     }); 
    }); 
</script> 

然後我彈出如下所示:

<div id="dialog2" title="ATTENTION"> 
    <table style="width:565px; border-spacing:0px; border-collapse:collapse;"> 
     <tr> 
      <td style="width: 240px"> 
       <asp:Label ID="lblCommentBox" runat="server" Text="Comment:"></asp:Label> 
       <asp:TextBox ID="txtCommentBox" runat="server" CssClass="textbox" 
          TextMode="multiline" Wrap="True" Height="70px" Width="420px" 
          Font-Size="Small"></asp:TextBox> 
      </td> 
     </tr> 
    </table> 
</div> 

回答

1

假設你有一個隱藏字段這樣的:

<input type="hidden" id="hfComment" /> 

或者像這樣的ASP.NET HiddenField:

<asp:HiddenField ID="hfComment" runat="server"></asp:HiddenField> 

那麼你是對的,你可以把代碼的地方,你以爲你應該:

$("#hfComment").val($("#txtCommentBox").val()); 

PS

有時,ASP.NET改變ClientID和生成的HTML標識與您創建的.aspx ID不匹配。如果是這樣的話,那麼最好使用一些CSS類來達到這個目的。

例如:

<!-- Inside your pop-up (etc) --> 
<asp:TextBox ID="txtCommentBox" runat="server" CssClass="textbox txt-comment-box" 
         TextMode="multiline" Wrap="True" Height="70px" Width="420px" 
         Font-Size="Small"></asp:TextBox> 

<!-- And then, your hidden field --> 
<asp:HiddenField ID="hfComment" CssClass="hf-comment" runat="server"></asp:HiddenField> 

那麼你的代碼將是這樣的:

$(".hf-comment").val($(".txt-comment-box").val());