我的注册页面是用HTML控件的,我用JS在前台判断了一遍,点提交的时到服务器再判断了一下,正确的话跳到注册成功页面,失败的话返回注册页面提示哪里不对,当返回来时页面的文本框都空了,如何让文本框不会被刷掉!还是用户原来填写的信息?谢谢
加上了<script type="text/javascript">history.back();</script> 这句后可以实现,但是
后台
string userName = Request.Form["txtUserName"].ToString();
if (userName == "")
{
this.errorName.Text = "<script>alert('不能为空)</script>";
this.errorName.Text = "不能为空";
}
这样都不可以,还有前台用Lable显示的判断也被刷掉了
这样就可以Response.Write("<script>alert('错误')</script>");
可以考虑使用 Ajax 提交:
将当前页面的参数提交到服务器的时候,禁用当前页面(灰色处理等),一旦后台判断提交成功,向前台发送脚本命令,使得当前页面跳转到指定页面;如果提交失败,则显示相关错误,同时页面可用(取消灰色处理等)。
补充:
jquery 中有包装完好的 $.post([params], cabackFunc) 函数,应用还是比较方便的。
把你的form的target指定到一个iframe,然后在iframe里处理提交的结果,并根据结果处理当前的表单.
常用的做法是在错误以后吧值都传给页面再赋值给文本框,而不是指望文本框的值完全不消失
“失败的话返回注册页面提示哪里不对”
我觉得只要判断失败就直接返回函数的执行就行了,不用重定向。这样不就可以保留住提交前的信息吗!
当成功时你再重定向
好象用ViewState最简单吧`~