客户端脚本修改服务端文本框控件的值,为什么服务端取不了该值呢,真是奇怪..
一个服务端控件,<input runat="server"这样也好,<asp:textbox runat="server"这样也好,在客户端用脚本修改他们的值,ID是服务端读取cliectID用脚本形式写到客户端一个变量里的(Response.Write("<script language=javascript>var editName='" & TBcontent.ClientID & "';</script>),客户端使用的是如下方法:document.getElementById(editName).value来操作该控件的值的.修改后客户端可以看见修改了,但一旦提交到服务端,服务端读取该控件的值却还是老的值(如未赋值便是空字付串).昨天苦苦研究一整天,没找出原因...真是头通,今天只好发到CSDN上来,希望能有高手指点一二.先谢谢了!! 问题点数:50、回复次数:7Top
1 楼caiCC(菜虫虫)回复于 2006-05-03 11:44:08 得分 0
发现使用Request.Form("控件名")这样可以取出客户端修改过后的数据,但是很奇怪,那个"控件名"参数一定得是客户端控件的"name"属性,而不能是ID属性,使用ID属性取出来就是老值,但是能知道的只有ID.可以用cliectID来取得,而且name值会按编译器版本变化,也只能再生成后的页面原代码里找出来是怎么样的.这样代码兼容性岂不是很差!?Top
2 楼hdt(倦怠)回复于 2006-05-03 11:51:43 得分 11
Forms enable client-side users to submit data to a server in a standardized format. The creator of a form designs the form to collect the required data using a variety of controls, such as INPUT or SELECT. Users viewing the form fill in the data and then click the Submit button to send the data to the server. A script on the server then processes the data.
Each control element's NAME attribute must be defined if the data is to be submitted with the form. An element in a form can be referenced by the name property or the id property, or through the elements collection.
Top
3 楼jianyi0115(随意)回复于 2006-05-03 11:55:33 得分 6
但是很奇怪,那个"控件名"参数一定得是客户端控件的"name"属性
----------------
不要奇怪,先搞清楚基本的html表单,Post请求的方式.
可以用UniqeID获取客户端控件的"name"属性.
一般来说,客户端js修改了textbox 的值,在服务器端是可以直接用Text属性获取到的,楼主取不到/?Top
4 楼cansum396(漆黑的夜)回复于 2006-05-03 11:55:36 得分 11
客户修改的在服务器端 是取不到的
放到hidder中去Top
5 楼caiCC(菜虫虫)回复于 2006-05-03 13:25:51 得分 0
有谁知道response.from方法为什么不能用ID来取吗.还有为什么客户端用JS修改文本框的value值后,服务端使用text读不出来,(如果是runat="server"的input服务端控件,使用id.value也读不出来的.)客户端js里是使用document.getElementById搜索出来操作的,难道和这有关系?不过在客户端是能看到值改变了的呀.!!Top
6 楼insiderc()回复于 2006-05-03 13:32:24 得分 11
可加个中间控件得到Top
7 楼webwait(webwei)回复于 2006-05-09 14:30:36 得分 11
客户端得到的只是服务器端运行后结果,客户端做的改变不提交的话,服务器不会取得值
Top




