這裏是我的HTML代碼HiddenField的值使用JQuery設置,但值不能在讀取代碼隱藏
<table>
<tr>
<th>
Department Comments:
</th>
<td>
<asp:TextBox ID="txtDepartmentComments" runat="server" Columns = "45"
TextMode = "MultiLine" CssClass = "txtComments" ></asp:TextBox>
<asp:HiddenField ID = "hfDptComments" runat = "server" />
</td>
<td>
<asp:Button ID="btnComplete" runat="server" Text="Completed"
CssClass = "button-save" />
</td>
</tr>
</table>
這裏是我的jQuery代碼
$('[id*="btnComplete"]').click(function() {
var $val = $(this).closest('tr').find('[id*="txtDepartmentComments"]').val();
var hfDptComments = $(this).closest('tr').find('[id*="hfDptComments"]');
$(hfDptComments).prop('value', $val);
alert($(hfDptComments).val());
});
而這僅僅是一個虛擬的代碼測試值是否被髮送到服務器。
protected void Page_Load(object sender, EventArgs e)
{
string strDptComments = this.hfDptComments.Value;
}
當我鍵入內容並運行應用程序時,javascript框消息顯示我輸入的內容。但是,當我在代碼後面放置一個斷點時,我總是會得到一個空字符串。
任何想法爲什麼?
感謝您的幫助
記那個'Page_Load'被稱爲_before_正在運行設置隱藏字段的javascript;如果在javascript填充值後提交會發生(通過按鈕或任何回發的控件),那麼_will_將獲得值 – mshsayem 2013-02-15 17:43:16
@mshsayem他可能是單擊了一個按鈕,該按鈕同時執行回發,並且將調用page_load再次...所以我懷疑這是問題。 – scartag 2013-02-15 17:45:02
我避免直接在代碼中添加標記的原因是因爲控件(即按鈕,textarea和hiddenfield)位於位於中繼器內的用戶控件內。因此,標記會很長並且令人困惑。 – Richard77 2013-02-15 18:08:38