我有一个表单,当满足某些条件时,会调用JQuery UI Popup。我需要做的是,当按下OK按钮时,将弹出窗口文本框中的内容写入我表单上的隐藏文本框。这可能吗?看起来我只需稍微调整一下我的弹出窗口:
<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>
答案 0 :(得分: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 ID与您创建的.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());