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不起作用?:(
...全文
3 点赞 收藏 10
写回复
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 结点进行判断不过这样有点得不尝失了.
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告