比如注册新用户的过程中,form里的密码已经经过RequiredFieldValidator验证,但接着需要在客户端用javascript脚本加密该密码,然后再传到服务器上,这个如何处理,本人在提交按钮上加了个onclick属性,调用客户端脚本加密方法,但似乎RequiredFieldValidator验证又不执行,????,还有想将加密后的密码存在一个HiddenField里,但不知道HiddenField控件在哪个命名空间里,在对应cs里声明protected System.Web.UI.WebControls.HiddenField hdnFld;老报HiddenField找不到之类的错,请高手赐教一二!
<input type="hidden" runat="server" id="myHiddenField" />
<br />
类型是:<%=myTest.Controls[0].GetType().FullName %>
</span>
.........
类型是:<%=myHiddenField.GetType().FullName %>
cs:protected System.Web.UI.WebControls.HiddenField hdnFld;
刚才写的有点乱。
aspx:
<input type="hidden" id="hdnPwd" runat="server" />
<asp:textbox id="pwd" runat="server" Width="133px" TextMode="Password" CssClass="txtfld"></asp:textbox>
<asp:button id="regBtn" text=" 提 交 " cssclass="Button1" runat=server/>
建个js文件,里面2函数
function getpwd()
{
var hdn=document.getElementById('hdnPwd');
var pwd=document.getElementById('pwd');
hdn.value=hex_md5(pwd.value);//加密函数在另一个js里
}function subit()
{
var pwd=document.getElementById('pwd');
if (pwd.value !='')
getpwd();
}
js文件里有如下语句:
protected System.Web.UI.WebControls.Button regBtn;
protected System.Web.UI.HtmlControls.HtmlInputHidden hdnPwd;
protected void Page_Load(object sender, EventArgs e)
{
regBtn.Attributes.Add("onclick","subit();");
//其他处理
}
这样在调用页面验证控件前,先调用subit()函数,如果输入了密码,会进行加密,将加密后结果放在hdnPwd里,如果为空,会继续调用验证控件的处理。以前不行是因为在Page_load里是语句regBtn.Attributes.Add("onclick","return subit();");因为return而不能继续执行验证控件的处理了。谢谢参与的朋友,你们的参与给了我部分思路。