0

这是我的 HTML 代码

<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 框消息会显示我键入的内容。但是,当我在后面的代码中设置断点时,总是得到一个空字符串。

知道为什么吗?

感谢您的帮助

4

3 回答 3

1

您应该尝试使用设置.val()

$(hfDptComments).val($val);
于 2013-02-15T17:43:42.697 回答
0

尝试使用这个:

hfDptComments.prop('value', $val);

hfDptComments.attr('value', $val);

hfDptComments.val($val);

hfDptComments它已经是一个 jquery 对象。尝试其中之一。

于 2013-02-15T17:55:30.237 回答
0

正常编写您的 javascript 函数(无需通过 jQuery 进行事件绑定),例如:

function SetMyValue() {
    var $val = $('#<%# btnComplete.ClientID %>').closest('tr').find('[id*="txtDepartmentComments"]').val();
    var hfDptComments = $(this).closest('tr').find('[id*="hfDptComments"]');
    $(hfDptComments).val($val);
}

在按钮的标记中设置OnclientClick属性(将回发),例如:

<asp:Button ID="btnComplete" runat="server" Text="Completed" OnClientClick="return SetMyValue();"
          CssClass = "button-save" />
于 2013-02-15T17:56:20.170 回答