qiushuiwuhen(秋水无恨)在吗,以前你给我解答的问题又出问题了~~~~~~也请大家多多帮忙!

linj 2002-07-24 06:12:43
就是有一表单,就象许多网站上修改用户资料的那样,每项都会有从数据库中取出的默认值,我如何能知道用户修改了哪里而只把他修改的这部分提交到数据库,没改的就不提交~~~~~

我按你的解答写了如下测试页面:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script>
function check(theForm){
var e=theForm.elements
for(i=0;i<e.length;i++)
switch(e[i].type){
case "checkbox":
case "radio":e[i].disabled=e[i].checked==e[i].defaultChecked;break;
case "text":e[i].disabled=e[i].value==e[i].defaultValue;break;
case "select":e[i].disabled=e[i].selected==e[i].defaultSelected;break;--我加的--
}
theForm.submit();
}
</script>
<body>
<%
response.write request("input1")&"1<br>"
response.write request("input2")&"2<br>"
response.write request("input3")&"3<br>"
response.write request("select")&"4"
%>
<form action="test.asp">
<input type=text name=input1 value=text1>
<input type=checkbox name=input2 value=text2>选中
<input type=radio name=input3 value=text3 checked>男
<input type=radio name=input3 value=text4>

<select name="select"> --我加的--
<option value="1">1</option> --我加的--
<option value="2" selected>2</option> --我加的--
</select>
<input type=button value="将没改过的设为disabled,这样就不提交了" onclick=check(this.form)>

</form>
</body>
</html>

可是为什么SELECT不起作用?:(
...全文
30 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
linj 2002-07-25
  • 打赏
  • 举报
回复
upupupup~~~~~~~~
grooving 2002-07-25
  • 打赏
  • 举报
回复
管它改没改。一起update就完了嘛。要那么麻烦做什么?
linj 2002-07-25
  • 打赏
  • 举报
回复
up~~~~~~~~~:(
谢谢楼上的两位
大家能不能帮帮忙
linj 2002-07-25
  • 打赏
  • 举报
回复
qiushuiwuhen(秋水无恨)太牛了~~~~~~~~~~:)
给分~~~~~~~~
qiushuiwuhen 2002-07-25
  • 打赏
  • 举报
回复
1.select不属于elements,所以用all
2.select不是e[i].type
3.遍历select的options

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script>
function check(theForm){
var e=theForm.all
for(i=0;i<e.length;i++){
switch(e[i].tagName){
case "INPUT":
switch(e[i].type){
case "checkbox":
case "radio":e[i].disabled=e[i].checked==e[i].defaultChecked;break;
case "text":e[i].disabled=e[i].value==e[i].defaultValue;break;
}
break;
case "SELECT":
for(j=0;j<e[i].length;j++)if(e[i][j].defaultSelected)e[i].disabled=e[i][j].selected
//for(j=0;j<e[i].options.length;j++)if(e[i].options[j].defaultSelected)e[i].disabled=e[i].options[j].selected
}
}
}
</script>
<body>
<%
response.write request("input1")&"1<br>"
response.write request("input2")&"2<br>"
response.write request("input3")&"3<br>"
response.write request("select")&"4"
%>
<form action="test.asp">
<input type=text name=input1 value=text1>
<input type=checkbox name=input2 value=text2>选中
<input type=radio name=input3 value=text3 checked>男
<input type=radio name=input3 value=text4>

<select name="select"> --我加的--
<option value="1">1</option> --我加的--
<option value="2" selected>2</option> --我加的--
</select>
<input type=button value="将没改过的设为disabled,这样就不提交了" onclick=check(this.form)>

</form>
</body>
</html>
cmsoft 2002-07-25
  • 打赏
  • 举报
回复
你加的是错的,
switch(e[i].type){
是表单中的<input type="">这样的才行的,而select不是这种,故你的添加
不正确

把这个放出swicth之外把原先那行的删除掉theForm.select.disabled=theForm.select.selected==theForm.select.defaultSelected;break;
linj 2002-07-25
  • 打赏
  • 举报
回复
up~~~~~~~~~
evonne_feng 2002-07-24
  • 打赏
  • 举报
回复
定义一个数组,给每一个输入框定义一个onchange事件,在事件处理脚本中把改变的项添加到数组里,当然要做一些判断。
evonne_feng 2002-07-24
  • 打赏
  • 举报
回复
定义一个数组,给每一个输入框定义一个onchange事件,在事件处理脚本中把改变的项添加到数组里,当然要做一些判断。
yonghengdizhen 2002-07-24
  • 打赏
  • 举报
回复
defaultSelected
select有这个属性吗?
OPTION 才有这个属性.

这里我建议你用一个隐含域保存初值进行判断.

当然你可以循环遍历 OPTION 结点进行判断不过这样有点得不尝失了.
网友netstarry写的一个处理字符编码的类,很好的解决了php中字符转换的问题 前一阵子见到了qiushuiwuhen君的关于gbk,unicode,big5的转换的文章 但是多少有一些不太大的问题 于是我设计了一个负责字符转换的类,修正了其中的一些不足,增加了部分功能,以后我会不断扩充该类,来支持更多的字符集 增加了如下几点: unicode->gbk 符号部分的转换 欧元符(?的识别 big5,Unicode,GBK之间的相互转换,前提是只转换共同的字符集部分, 使用说明: 暂时程序支持以下字符编码方式: GBK,BIG5,UTF-16BE(Unicode big-endian字节顺序),UTF-16LE(Unicode little-endian字节顺序),UTF-8 默认输入编码方式为GBK,默认输编码方式为UTF-16BE; 该类别提供两个函数用来修改输入和输编码方式: 修改输入编码方式 boolean SetGetEncoding(string $GetEncoding) 修改输编码方式 boolean SetToEncoding(string $ToEncoding) 函数参数只能使用上述5种编码方式,区分大小写,如GBK不能写成gbk 如果设置成功,返回true,如果使用了错误的编码名,返回false,并现实错误信息 函数 string EncodeString(string $String) 负责进行字符编码转换,返回转换后的字符串 使用前,将var $FilePath=\"\"变量该为该程序文件的绝对路径,否则将会找不到数据文件 例子: 将gbk编码的字符串转化为UTF-8编码: $s=\"GBK编码\"; $CharEncoding=new Encoding(); $CharEncoding->SetGetEncoding(\"GBK\")||die(\"编码名错误\"); $CharEncoding->SetToEncoding(\"UTF-8\")||die(\"编码名错误\"); echo $CharEncoding->EncodeString($s); 在浏览器中使用UTF-8编码察看,将会看到正确的字符.

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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