作者Eleganse (王建民)
看板C_Sharp
标题[问题] JS全域变数如何透过网页控制项动态赋值?
时间Fri Mar 9 15:43:34 2012
基於某些理由以及描述方便,我写了以下一段的JS码。
<head><title>
未命名页面
</title>
<script type="text/javascript">
var Point_1;
var Point_2;
var Point_3;
var Point_4;
var Point_5;
function cbChange(PointName,ControlName,Value) {
if (document.getElementById(ControlName).checked == true) {
PointName = Value;
alert(PointName);
//alert(Point_1);//注记
}
if (document.getElementById(ControlName).checked == false) {
alert(PointName);
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUJNzgzND\
MwNTMzZGRZmWsrNGbPJujnk93ixuFe+HAvUQ==" />
</div>
<div>
<input id="cb_1" type="checkbox" name="cb_1"
onclick="cbChange(Point_1,'cb_1',1);" />
<input id="cb_2" type="checkbox" name="cb_2"
onclick="cbChange(Point_2,'cb_2',2);" />
<input id="cb_3" type="checkbox" name="cb_3"
onclick="cbChange(Point_3,'cb_3',3);" />
<input id="cb_4" type="checkbox" name="cb_4"
onclick="cbChange(Point_4,'cb_4',4);" />
<input id="cb_5" type="checkbox" name="cb_5"
onclick="cbChange(Point_5,'cb_5',5);" />
</div>
</form>
</body>
</html>
网页布署後,点按checkbox,勾选(checked=true)时显示正常。
但反勾选(checked=false)时,其值显示undifined.
注记:实际上我通过检查,其实在第一阶段就没有赋值到全域变数上了。
我的疑问与需求是,如何透过网页控制项,动态赋值JS全域变数?
备注:我基於以下理由,衍生了上述特殊要求
(1)checkbox控制项,乃成千上万,其赋值(Value),为经由资料库读取而出的资料,
透过控制项动态布署完成。
(2)关於JS函数--cbChange。
原先的做法是新增一组checkbox,就新增一组函数来服务之,运作上没有问题,
但当checkbox数量越来越多时,函数也必须等量增加,网页大小因此暴涨,
因此衍生撰写一通用JS函数,来服务控制项赋值的想法。
(因为ASP.NET(C#)程式设计师,应常会有控制项与JS码配合的需求,
不知版上有无先进撰写过类似的语法,望不吝提示。)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.61.67
1F:推 qwer820404:先了解一下 你这个是执行後的html 原始码还是 03/09 20:28
2F:→ qwer820404:在aspx页面那边看的 03/09 20:28
3F:→ Eleganse:透过伺服器端程式动态产生HTML控制项 以及JS函式码 03/10 14:32
4F:→ Eleganse:想要写"一组"通用函式 来服务动态产生的HTML"控制项们" 03/10 14:34
5F:→ Eleganse:也因此 尚需指定控项名称与欲赋值的全域变数名 03/10 14:36
6F:→ Eleganse:而所衍生的问题 - 如何透过网页控制项赋值JS全域变数 03/10 14:38
7F:推 qwer820404:动态新增有很多种写法 03/10 17:16
8F:→ qwer820404:看你要不私信给我留个MSN我在跟你问 03/10 17:18
9F:推 ideaup:onclick="cbChange(Index of Var-Array,'cb_1',1);" /> 03/14 08:27