在提交时停止清除表单

时间:2011-11-11 12:20:34

标签: asp.net html forms

我正在使用asp.net,但只使用常规表单而不是runat =“server”。这是一个:

<form action="addUser.aspx" method="post">
    <fieldset>
        <label>Username</label>
        <input name="username" type="text" maxlength="50" />
        <span id="usernameInfo" class="fieldInfo" runat="server"></span>
    </fieldset>

    <fieldset>
        <label>Password</label>
        <input name="password" type="password" maxlength="50" />
        <span id="passwordInfo" class="fieldInfo" runat="server"></span>
    </fieldset>

    <fieldset>
        <label>Email</label>
        <input type="text" maxlength="50" />
        <span id="emailInfo" class="fieldInfo" runat="server"></span>
    </fieldset>

    <div class="buttonHolder">
        <button type="submit">Submit</button>
        <span id="generalInfo" runat="server"></span>
    </div>

</form>

当表单被提交并且页面重新加载时,表单中的所有字段都是空的。这很烦人,因为我需要验证表单并告知用户用户名是否已经在用户中。例如。

为什么会这样?即使我拿出处理表单的所有代码,它仍然在提交时被清除。在网络上,人们所处的困难恰恰相反 - 他们希望表格在不存在时能够清除。

为什么反向发生在我身上,我该如何解决?

2 个答案:

答案 0 :(得分:2)

在你的回答中,不清楚你为什么使用html输入。但是,如果你可以使用asp.net控件,我建议使用它。

<asp:TextBox id="textbox" runat="server" />

而不是

<input type="text" maxlength="50" />

使用asp.net文本框控件viewstate即使在您单击提交后也会在文本框中保留您的值,但由于验证错误而保持在同一页面上。当你离开另一个页面进入页面时,你将失去你的价值。

有关viewstate http://msdn.microsoft.com/en-us/library/ms972976.aspx

的更多信息

答案 1 :(得分:0)

电子邮件的“名称”属性是阅读帖子所必需的属性。

您没有提供任何显示您如何尝试读取值的代码,我假设您正在尝试阅读后面的代码。

您应该能够将值读作Request [“NameOfControl”]。

您是否在页面加载时设置值,这可能会覆盖输入的值?

阅读上述评论:

你必须使用javascript重新填充控件,因为控件不是服务器端..因为你没有使用带有runat =“server”的webcontrol,所以没有ViewState,所以你有重新填充手动值。