在javascript中捕捉按钮点击而无需服务器交互
我有一个注册表单,要求用户输入他们的电子邮件和密码,它们都在两个单独的文本框中。我想提供一个用户可以单击的按钮,这样当用户单击按钮时,密码(被屏蔽)将出现在弹出窗口中 目前,我的JavaScript代码如下所示:在javascript中捕捉按钮点击而无需服务器交互,javascript,ajax,Javascript,Ajax,我有一个注册表单,要求用户输入他们的电子邮件和密码,它们都在两个单独的文本框中。我想提供一个用户可以单击的按钮,这样当用户单击按钮时,密码(被屏蔽)将出现在弹出窗口中 目前,我的JavaScript代码如下所示: function toggleShowPassword() { var button = $get('PASSWORD_TEXTBOX_ID'); var password; if (button)
function toggleShowPassword() {
var button = $get('PASSWORD_TEXTBOX_ID');
var password;
if (button)
{
password = button.value;
alert(password);
button.value = password;
}
}
问题是,每次用户单击按钮时,Firefox和IE中的密码都会被清除。我希望他们能够以明文形式查看密码以进行验证,而无需重新键入密码
我的问题是:
我假设浏览器在试图设置密码字段的值时遇到了一些问题:
button.value = password;
这行代码没有真正的用途password.value
在前面几行中不受影响,您在alert()
中读取并使用该值
这应该是代码的更简单版本:
function toggleShowPassword() {
var button = $get('PASSWORD_TEXTBOX_ID');
if (button)
{
alert(button.value);
}
}
编辑:事实上我刚刚做了一个快速测试,Firefox在设置密码字段的值时没有问题,比如
button.value=“blah”
。看来情况并非如此。。。我会检查您的ASP.NET代码是否如其他人所建议的那样导致回发。我会假设浏览器在试图设置密码字段值的脚本中存在一些问题:
button.value = password;
这行代码没有真正的用途password.value
在前面几行中不受影响,您在alert()
中读取并使用该值
这应该是代码的更简单版本:
function toggleShowPassword() {
var button = $get('PASSWORD_TEXTBOX_ID');
if (button)
{
alert(button.value);
}
}
编辑:事实上我刚刚做了一个快速测试,Firefox在设置密码字段的值时没有问题,比如
button.value=“blah”
。看来情况并非如此。。。我将检查您的ASP.NET代码是否如其他人所建议的那样导致回发。您不需要执行button.value=password代码>因为读取值不会改变它。我不知道为什么要清除它,可能JavaScript不允许修改密码字段值。您不需要执行按钮。value=password代码>因为读取值不会改变它。我不知道为什么会被清除,可能JavaScript不允许修改密码字段值。听起来您每次单击都在向服务器发出请求,每次页面加载时重置密码框是浏览器的典型行为。听起来您每次单击都在向服务器发出请求,每次加载页面时都会重置密码框,这是浏览器的典型行为。您没有说您正在使用ASP.NET,但是
根据设计,ASP.NET在回发期间清除模式为密码的TextBox控件的值。我使用以下代码在子类中解决此问题:
// If the TextMode is "password", the Text property won't work
if ( TextMode == System.Web.UI.WebControls.TextBoxMode.Password )
Attributes[ "value" ] = stringValue;
//如果TextMode为“password”,则Text属性将不起作用
if(TextMode==System.Web.UI.WebControls.TextBoxMode.Password)
属性[“值”]=stringValue;
你没有说你在使用ASP.NET,但是
根据设计,ASP.NET在回发期间清除模式为密码的TextBox控件的值。我使用以下代码在子类中解决此问题:
// If the TextMode is "password", the Text property won't work
if ( TextMode == System.Web.UI.WebControls.TextBoxMode.Password )
Attributes[ "value" ] = stringValue;
//如果TextMode为“password”,则Text属性将不起作用
if(TextMode==System.Web.UI.WebControls.TextBoxMode.Password)
属性[“值”]=stringValue;
如果您不希望按钮提交表单,请确保它的类型为“button”而不是“submit”。例如,您可以执行以下操作:
<input type="button" value="Show My Password" onclick="toggleShowPassword()"/>
如果您不希望按钮提交表单,请确保它的类型为“button”而不是“submit”。例如,您可以执行以下操作:
<input type="button" value="Show My Password" onclick="toggleShowPassword()"/>
在HTML中:
<input type="button" onclick="toggleShowPassword();">
您需要使用“按钮”而不是“提交”来阻止表单发布。在HTML中:
<input type="button" onclick="toggleShowPassword();">
您需要使用“按钮”而不是“提交”来阻止表单发布。我做了一个工作版本的快速示例:
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function toggleShowPassword() {
var textBox = $('PasswordText');
if (textBox)
{
alert(textBox.value);
}
}
</script>
</head>
<body>
<input type="password" id="PasswordText" /><input type="button" onclick="toggleShowPassword();" value="Show Password" />
</body>
</html>
函数toggleShowPassword(){
var textBox=$('PasswordText');
如果(文本框)
{
警报(textBox.value);
}
}
关键是输入类型为button,而不是submit。我使用库按ID检索元素。我做了一个工作版本的快速示例:
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function toggleShowPassword() {
var textBox = $('PasswordText');
if (textBox)
{
alert(textBox.value);
}
}
</script>
</head>
<body>
<input type="password" id="PasswordText" /><input type="button" onclick="toggleShowPassword();" value="Show Password" />
</body>
</html>
函数toggleShowPassword(){
var textBox=$('PasswordText');
如果(文本框)
{
警报(textBox.value);
}
}
关键是输入类型为button,而不是submit。我使用库按ID检索元素。哈
答案如下:
我想出了解决办法。。。解决办法很简单
OnClientClick="myOnClick()"
到
这是完全更正的代码
函数myOnClick(){
//执行其他一些操作。。。
返回false;
}
无标题页
哈哈
答案如下:
我想出了解决办法。。。解决办法很简单
OnClientClick="myOnClick()"
到
这是完全更正的代码
函数myOnClick(){
//执行其他一些操作。。。
返回false;
}
无标题页