asp.net中通过js给Label赋值,但是赋值不了
1、先上代码:
(1)asp相关部分代码如下:
(2)js代码如下:
这个warning的代码就是清空不了,好奇怪。。。
(1)asp相关部分代码如下:
<asp:Label ID="warning" runat="server" Text=""></asp:Label>
<input id="Reset" type="reset" value="重置" onclick="Reset()" />
(2)js代码如下:
function Reset() {
document.getElementById("<%=warning.ClientID%>").innerHTML = "";
}
这个warning的代码就是清空不了,好奇怪。。。
...全文
请发表友善的回复…
发表回复
Sanlence 2016-08-07
- 打赏
- 举报
换成innertext、innerHtml都试了,没用
以专业开发人员为伍 2016-08-05
- 打赏
- 举报
贴出这个代码输出到前端 html 里边的代码。另外,贴出你使用 js 断点调试这条语句的截图。
你贴出的代码,只能证明你”编写了代码“,这可能是随便抄的,并不能说明你会调试开发啊。应该贴出你的调试截屏来说明你会做什么调试。
秋的红果实 2016-08-05
- 打赏
- 举报
1、<input id="Reset" type="reset" value="重置" onclick="Reset()" /> 方法名就不能换个吗?和id一样总觉得不怎么对
2、
function Reset() {
document.getElementById("warning").textContent = ""; 改成innertext
document.getElementById("user_name").value = "";
document.getElementById("user_pwd").value = "";
document.getElementById("user_code").value = "";
}
Sanlence 2016-08-05
- 打赏
- 举报
我的代码是在aspx上的,我把代码贴出来~:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" MaintainScrollPositionOnPostback="true" %>
<!DOCTYPE html>
<!--[if IE 8]> <html lang="en" class="ie8 no-js"> <![endif]-->
<!--[if IE 9]> <html lang="en" class="ie9 no-js"> <![endif]-->
<!--[if !IE]><!-->
<!--<![endif]-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>江中药谷碳排放系统 - 登录界面</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="JS/jquery-3.1.0.min.js"></script>
<link href="bootstrap-3.3.5-dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="bootstrap-3.3.5-dist/css/bootstrap-theme.min.css" rel="stylesheet" />
<script src="bootstrap-3.3.5-dist/js/bootstrap.min.js"></script>
<script src="bootstrap-3.3.5-dist/js/npm.js"></script>
<style type="text/css">
#warning {
font-family: 微软雅黑,宋体;
font-size: 12px;
color: #ff0000;
}
/*.code, #user_name, user_pwd {
font-size:15px;
}*/
</style>
<script type="text/javascript">
function veritySubmit() {
var uname = document.getElementById("user_name").value;
if (uname == null || uname == "") {
document.getElementById("warning").textContent = "用户名不能为空!";
return false;
}
var upwd = document.getElementById("user_pwd").value;
if (upwd == null || upwd == "") {
document.getElementById("warning").textContent = "密码不能为空!";
return false;
}
var userPattern = /[A-Za-z0-9]{4,20}/;
var flag = userPattern.test(uname);
if (flag == false) {
document.getElementById("warning").textContent = "用户名只能由英文大小写字母组成!";
return false;
}
var pwdPattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,18}$/;
flag = pwdPattern.test(upwd);
if (flag == false) {
document.getElementById("warning").textContent = "密码必须由8-16位字母、数字、特殊符号线组成.!";
return false;
}
return true;
}
function Reset() {
document.getElementById("warning").textContent = "";
document.getElementById("user_name").value = "";
document.getElementById("user_pwd").value = "";
document.getElementById("user_code").value = "";
}
</script>
</head>
<body>
<form id="form1" runat="server" defaultbutton="Submit" defaultfocus="user_name">
<div class="container">
<div class="row">
<div class="col">
<div class="img_login">
图片
</div>
</div>
<div class="span6">
<div class="login">
用户名:<asp:TextBox ID="user_name" runat="server" Width="170px" Height="20px"></asp:TextBox>
<br />
<br />
密 码:<asp:TextBox ID="user_pwd" runat="server" TextMode="Password" Width="170px"
Height="20px"></asp:TextBox>
<br />
<br />
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div class="login_code">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
验证码:<asp:TextBox ID="code" runat="server" Width="45px" Height="20px"></asp:TextBox>
<asp:ImageButton ID="vcImage" runat="server" AlternateText="图片验证码"
ImageUrl="~/CreateCode.aspx" Style="vertical-align: middle" />
<asp:LinkButton runat="server" ID="refreshCode" OnClick="refreshCode_Click">换一张</asp:LinkButton>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="refreshCode" />
</Triggers>
</asp:UpdatePanel>
</div>
<asp:Label ID="warning" runat="server" Text=""></asp:Label>
<br />
<asp:Button ID="Submit" runat="server" Text="登录" OnClick="Submit_Click" OnClientClick="return veritySubmit()" />
<input id="Reset" type="reset" value="重置" onclick="Reset()" />
</div>
</div>
</div>
</div>
</form>
</body>
</html>
Sanlence 2016-08-04
- 打赏
- 举报
打字错误,最后一句话改成:这个warning的标签就是清空不了,好奇怪。。。
娃都会打酱油了 2016-08-04
- 打赏
- 举报
我的意思是后台获取才会有这种问题,你这个看起来只是前端显示用的,那问题在于,你的Reset方法在aspx页面上吗?还是单独的js里面,单独js的话,<%=warning.ClientID%>就会被认为字符串,因为它不会经过ISAPI处理
秋的红果实 2016-08-04
- 打赏
- 举报
不会清空不了啊,我刚才写的
document.getElementById("<%=Label1.ClientID%>").innerText = "asdf";
//document.getElementById("Label1").innerText = "asdf"; //也可以执行
查查别的地方有什么问题Sanlence 2016-08-04
- 打赏
- 举报
您好,看了你的回复后,我搜索了一下ViewState的网上说明,但是不怎么懂。结合我提的疑问的例子:你的意思是前台通过js修改了Label的值,但是这个修改没有修改到后台去,ViewState保存的Label内容还是后台的值,也就是修改之前的值,经过反序列化得来的是修改之前的,因此页面显示的是修改之前的值。是这个意思吗?如果是这个意思的话,存在一个疑问:
----为什么我其他js修改Label 的值成功了呢?
代码如下:
<script type="text/javascript">
function veritySubmit() {
var uname = document.getElementById("user_name").value;
if (uname == null || uname == "") {
document.getElementById("warning").textContent = "用户名不能为空!";
return false;
}
var upwd = document.getElementById("user_pwd").value;
if (upwd == null || upwd == "") {
document.getElementById("warning").textContent = "密码不能为空!";
return false;
}
var userPattern = /[A-Za-z0-9]{4,20}/;
var flag = userPattern.test(uname);
if (flag == false) {
document.getElementById("warning").textContent = "用户名只能由英文大小写字母组成!";
return false;
}
var pwdPattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,18}$/;
flag = pwdPattern.test(upwd);
if (flag == false) {
document.getElementById("warning").textContent = "密码必须由8-16位字母、数字、特殊符号线组成.!";
return false;
}
return true;
}
我点击登录按钮,设置不同的错误,可以得到下面不同的图片
娃都会打酱油了 2016-08-04
- 打赏
- 举报
前台可以清空,但后台还是会获得原本的值,因为对于Label这类不可修改的控件,值是通过ViewState恢复的,注意是不可修改,即对于设置了Enabled=false的TextBox同样遵循这原则
by_封爱 2016-08-04
- 打赏
- 举报
可以清空