如何将8个同名的CHECKBOX,值是0或1,提交后保存到一个8位的整型上,并且刷新见面后要能根据0或1判断是否选中

ajanemm 2008-07-23 10:59:14
等等附上代码。。。
...全文
225 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysxzh 2012-03-21
  • 打赏
  • 举报
回复
非常感谢,这几天怎么遇到这个问题,引用你的解决了。
[Quote=引用 20 楼 s_liangchao1s 的回复:]
HTML code

<INPUT TYPE="checkbox" NAME="ock" >
<INPUT TYPE="checkbox" NAME="ock" >
<INPUT TYPE="checkbox" NAME="ock" >
<INPUT TYPE="checkbox" NAME="ock" >

<SCRIPT LANGUAGE="JavaScript">
<!--
/*这是coo……
[/Quote]
s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复

<style>
.userData { behavior:url (#default#userdata);}
</style>
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<SCRIPT LANGUAGE="JavaScript">
<!--
/*IE Only 不认为这是个好的解决方法*/
var ocheck = document.getElementsByName('ock');
for(var i = 0; i<ocheck.length; i++){
ocheck[i].attachEvent('onclick',saveChecked);

}
function saveChecked(){
for(var i = 0; i<ocheck.length; i++){
ocheck[i].setAttribute("bCheckedValue",ocheck[i].checked);
ocheck[i].save("ocheckValue"+i);
}
}
window.attachEvent('onload',loadCheck);
function loadCheck(){
var chk='';
for(var i = 0; i<ocheck.length; i++){
ocheck[i].load("ocheckValue"+i);
chk = (ocheck[i].getAttribute("bCheckedValue")=='true')?true:false;
ocheck[i].checked = chk;

}
}
//-->
</SCRIPT>

ajanemm 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaojing7 的回复:]
引用 6 楼 ajanemm 的回复:
是啊,就是这样的。。。如果本来是选中的,然后把勾去掉,刷新后还是保持勾是去掉的

-
客户端改变?
应该保存数据库中或者缓存依赖了
[/Quote]


是啊,客户端改变,那怎么弄咧?
xiaojing7 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ajanemm 的回复:]
是啊,就是这样的。。。如果本来是选中的,然后把勾去掉,刷新后还是保持勾是去掉的
[/Quote]
-
客户端改变?
应该保存数据库中或者缓存依赖了
ajanemm 2008-07-23
  • 打赏
  • 举报
回复
是啊,就是这样的。。。如果本来是选中的,然后把勾去掉,刷新后还是保持勾是去掉的
s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复
看了楼主的标题 我想你的需求是不是:当你选中了checkbox,然后刷新页面后让它保存住选项??
s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复
哈哈 你就是我的神。。。。
ajanemm 2008-07-23
  • 打赏
  • 举报
回复
printf("<form id=\"frmTS23_16\" name=\"frmTS23_16\" method=\"post\" action=\"slotConfig.cgi?chassis_idx=%d&slot_idx=%d\" target=\"actPro\">\n", p_map.ChassisIndex, SlotIndex);

if(p_map.SlotTS23_16&00000001==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS16</span>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS16</span>\n");
}

if(p_map.SlotTS23_16&00000010==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS17</span>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS17</span>\n");
}

if(p_map.SlotTS23_16&00000100==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS18</span>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS18</span>\n");
}

if(p_map.SlotTS23_16&00001000==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS19</span><br>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS19</span><br>\n");
}

if(p_map.TS23_16&00010000==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS20</span>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS20</span>\n");
}

if(p_map.SlotTS23_16&00100000==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS21</span>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS21</span>\n");
}

if(p_map.SlotTS23_16&01000000==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS22</span>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS22</span>\n");
}

if(p_map.SlotTS23_16&10000000==0)
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"0\" />\n");
printf(" <span class=\"style6\">TS23</span>\n");
}
else
{
printf(" <input name=\"TS23_16\" id=\"TS23_16\" type=\"checkbox\" value=\"1\" checked=\"checked\" />\n");
printf(" <span class=\"style6\">TS23</span>\n");
}

printf("<input name=\"subTS23_16\" type=\"submit\" id=\"subTS23_16\" value=\"设置\"><br></from>\n");





大概的代码就是这样的,可以忽略printf
xiaojing7 2008-07-23
  • 打赏
  • 举报
回复
?
s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复
代码没了?
ajanemm 2008-07-23
  • 打赏
  • 举报
回复
唉。。不行哦。。一刷新就还原了。。。
ajanemm 2008-07-23
  • 打赏
  • 举报
回复
我看了呀。。我不是说你给我的。。我说的是我自己的。。。

我单选的和下拉菜单都不用写脚本就可以用了
s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复

<INPUT TYPE="checkbox" NAME="ock" >
<INPUT TYPE="checkbox" NAME="ock" >
<INPUT TYPE="checkbox" NAME="ock" >
<INPUT TYPE="checkbox" NAME="ock" >

<SCRIPT LANGUAGE="JavaScript">
<!--
/*这是cookie*/
function readCook(){

}
function Cookie(){
this.set = function(name,value,expireTime){

if(!expireTime) expireTime = new Date();
document.cookie = name+"="+value+";"+"expire="+expireTime.toGMTString();
};
this.get = function(name){
var cookies = document.cookie.split("; ");
for(var i = 0; i < cookies.length; i++){
var s = cookies[i].split("=");
if(s[0]==name) return s[1];
}
}
}
var cookie = new Cookie();
var ocheck = document.getElementsByName('ock');
for(var i = 0; i<ocheck.length; i++){
ocheck[i].onclick = saveChecked;
}
function saveChecked(){
for(var i = 0; i<ocheck.length; i++){
cookie.set("ok"+i,ocheck[i].checked);
}
}
window.onload = loadCheck;
function loadCheck(){
var sign = ''
for(var i = 0; i<ocheck.length; i++){
sign = (cookie.get("ok"+i)=='true') ? true : false;

ocheck[i].checked = sign;
}
}


//-->
</SCRIPT>


s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 ajanemm 的回复:]
还有啊,为什么“单选” , “下拉菜单” 都直接可以自己根据客户端来判断,保持改变后的状态,多选的就不行呢?
[/Quote]

那我给你的代码你都不看?我给你的不是多选?
s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复


<style>
.userData { behavior:url (#default#userdata);}
</style>
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<INPUT TYPE="checkbox" NAME="ock" class="userData">
<SCRIPT LANGUAGE="JavaScript">
<!--
/*IE Only 不认为这是个好的解决方法*/
var ocheck = document.getElementsByName('ock');
for(var i = 0; i<ocheck.length; i++){
ocheck[i].attachEvent('onclick',saveChecked);

}
function saveChecked(){
for(var i = 0; i<ocheck.length; i++){
ocheck[i].setAttribute("bCheckedValue",ocheck[i].checked);
ocheck[i].save("ocheckValue"+i);
}
}
window.attachEvent('onload',loadCheck);
function loadCheck(){
var o = [];//这里就存着状态
var chk='';
for(var i = 0; i<ocheck.length; i++){
ocheck[i].load("ocheckValue"+i);
chk = (ocheck[i].getAttribute("bCheckedValue")=='true')?true:false;
ocheck[i].checked = chk;
o.push(chk);
}
alert(o)//看下出的结果
}
//-->
</SCRIPT>


ajanemm 2008-07-23
  • 打赏
  • 举报
回复
还有啊,为什么“单选” , “下拉菜单” 都直接可以自己根据客户端来判断,保持改变后的状态,多选的就不行呢?
ajanemm 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 s_liangchao1s 的回复:]
.userData { behavior:url (#default#userdata);}
userData是IE提供的一种存储行为,userData得容量要比cookie大得多。。。所以不考虑兼容的话,userData要好些
[/Quote]
哦,这样啊。
那你前面的那些代码可以把这几个同名的checkbox的值组成一个整数存储到一个变量中吗?
s_liangchao1s 2008-07-23
  • 打赏
  • 举报
回复
.userData { behavior:url (#default#userdata);}
userData是IE提供的一种存储行为,userData得容量要比cookie大得多。。。所以不考虑兼容的话,userData要好些
ajanemm 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 gmg_211 的回复:]
先根据CHECK的值拼凑成一个整数,等取出来时再转换成字符串,计算字符串的长度,再按位获取,具体代码略。
[/Quote]

根据CHECK的值拼凑成一个整数

取出来时再转换成字符串---这样就是连着写两个子函数了呀???

有没有现成的JS函数什么的可以比较方便一点的?
ajanemm 2008-07-23
  • 打赏
  • 举报
回复
.userData { behavior:url (#default#userdata);}

这句话是什么意思啊??

========================================================================
会非常麻烦的吗?但是现在浏览器种类很多,用其它浏览器的用户还是很多的呀,能不能帮忙写个呢,
或者你教俺个方法吧,说得详细写,呵呵
加载更多回复(3)
本课程讲了Vue3+Vue2+Uni-app(uniapp)入门基础与实战,其中还重点讲解了ES6、TypeScript这些基础知识,实战由两大价5000元的真实企业级项目组成,分别是仿京东电商网站和仿美团微信点餐小程序,同时两大项目代码全部赠送,还赠送前后端架构模板,工作中直接使用。VUE和uni-app是目前热门的前端框架,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件和插件,正式上线白屏问题,性能优化、解决iphoneX“刘海”兼容性问题、微信支付、微信授权登录,获取位置在地图上显示,获取用户所在的城市和街道信息,微信小程序发布审核等。对正在工作当中或打算学习VUE和uni-app高薪就业的你来说,那么这门课程便是你手中的葵花宝典。学习技巧:学习当中不要只看,一定要多敲代码,如果碰到某一个知识点不是很明白,不要钻牛角尖,千万不要因为一个点,放弃整个森林,接着往下学,硬着头皮开发项目。只要能亲自开发一个完整的项目,你会发现不明白的地方自然而然就明白了,项目做出来就真正的学会了。此vue和uni-app课程以面试和实战为基础进行讲解,每个知识点都会让你知道在实际项目开发中如何使用,学习后,可以开发大型项目,增强逻辑思维,至少让你拥有3年以上开发经验的实力!代码和ppt均可下载!免费提供《企业级完整实战项目接口文档》,绝对可用

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧