asp.net textbox.text和jquery.val()

时间:2013-01-30 11:55:53

标签: jquery asp.net

我正在网页代码隐藏中的按钮点击事件上阅读asp.net TextBox的内容。

如果我在框中输入内容,我可以通过TextBox.Text阅读其中的内容,这样可以正常工作。

但是,如果我使用jquery复制到输入文本框中,使用val()设置内容,我可以看到文本出现在框中但是当click事件触发时我尝试读取文本框的内容它是总是空白。如果我自己输入它,那里只有任何东西。

代码的相关部分是: - 输入框

<asp:TextBox runat="server" ID="deliveryAddress3" CssClass="required radius disabled sugestedAddressTargetCity bcity2" />

的Javascript

var bfields = ['.baddress', '.bcity', '.bcountry', '.bpostcode'];
    var dfields = ['.baddress2', '.bcity2', '.bcountry2', '.bpostcode2'];
for (var i in dfields) {
                    $(dfields[i]).prev('label').hide();
                    $(dfields[i]).val($(bfields[i]).val());
                    $(dfields[i]).attr('disabled', 'disabled');
                    $(dfields[i]).addClass('disabled');
                    $(dfields[i]).attr('disabled', 'disabled');

代码隐藏的按钮点击方法中的代码: -

customer.DelTown = deliveryAddress3.Text;

这里发生的是客户可以将他们的地址从一组盒子复制到另一组盒子。如果他们这样做(通过单击按钮),ext会显示在框中,但后面的代码是空白的。但是,如果我在这些框中键入内容,则可以在后面的代码中找到它。

1 个答案:

答案 0 :(得分:2)

我启动了一个新的ASP.net应用程序,如果您使用jQuery value设置文本框的attr()属性,它就可以正常运行。

脚本更新文本框内的值,后面的代码也可以读取它。

Designer HTML(将以下内容添加到default.aspx):

<asp:TextBox runat="server" ID="MytextBox"></asp:TextBox>
<asp:Button runat="server" ID="MyButton" Text="Click Me"/>

呈现HTML输出:

<input name="ctl00$MainContent$MytextBox" type="text" value="NewValue" id="MainContent_MytextBox">
<input type="submit" name="ctl00$MainContent$MyButton" value="Click Me" id="MainContent_MyButton">

脚本:

$("#MainContent_MytextBox").attr("value", "NewValue");

default.aspx.cs后面的代码:

protected void Page_Load(object sender, EventArgs e)
{
    // Place Debugger here:
    if (MytextBox.Text == "NewValue")
    {
        // hurray
    }
}