天质软件

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

是一个关于表单提交的奇怪问题!!!
测试环境(php):
test.php
<form name="form1" method="post" action="receive.php">
<table width="100%" border="1">
<tr>
<td><input name="test1" type="text" size="15" value="1" disabled>
</td>
<td><input name="test2" type="text" size="15" value="2" disabled></td>
<td><INPUT TYPE="submit"></td>
</tr>
</table>
</form>
--------------------------------------------------------------------
receive.php
<?
print_r ($HTTP_POST_VARS);
?>
---------------------------------------------------------------------
测试结果为空(被disable掉的input不能被post到下一张页面???)
测试环境(jsp)
<%@ page contentType="text/html; charset=GBk" %>
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<%
if (request.getParameter("Submit")!=null)
out.println(request.getParameter("input") );
else
{
%>
<form method="post" action="">
<br><br>
<input type="text" name="input" value="dfds" disabled>
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="Reset">
</form>
<%
}
%>
</body>
</html>
————————————————————————
成功,input的值被post了,(在jsp中 disabled的input也能北被post?????
——————————————————————————————
谁能告诉我在php中,我要取得被disabled的表单内容怎么办,不能用hidden属性。
谢谢



1、改post方式为get方式
<form name="form1" method="get" action="receive.php">
<table width="100%" border="1">
<tr>
<td><input name="test1" type="text" size="15" value="1" disabled>
</td>
<td><input name="test2" type="text" size="15" value="2" disabled></td>
<td><INPUT TYPE="submit"></td>
</tr>
</table>
</form>
提交后地址栏不出现被disabled了的变量,证明被disabled的对象不被提交是浏览器决定的
2、你的jsp例子与php例子不一样,不能说明问题。



为什么我用了get但是结果和post一样啊?
奇了怪了~~~~



<form name="form1" method="get">
<input name="test1" type="text" size="15" value="1" disabled>
<input name="test2" type="text" size="15" value="2">
<INPUT TYPE="submit">
</form>
这样的代码保存成html文件,比如test.htm
在浏览器中打开并提交,看看地址栏里都有什么?



浏览器disable掉的根本就不提交



把disable 换成readonly="" 试试看



笨办法,disabled的控件旁边加一个hidden控件来传值



你理解错误了,disabled 的没有被提交.
test1.jsp :
<form name="form1" method="post" action="test2.jsp">
<input name="input" type="text" size="15" value="123456" disabled>
<INPUT TYPE="submit">
</form>
test2.jsp :
<%
out.print (request.getParameter("input"));
%>
运行test1.jsp,提交test1.jsp后,在test2.jsp得到的结果是 null ,表示名为input的输入框没有别提交.(与PHP是一样的)
你要想input框能提交且又不能被修改,你可以把 disabled 改为 readonly

posted on 2012-12-10 11:49  天质软件  阅读(52)  评论(0)    收藏  举报