博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表单提交取不到表单中参数的正确值的问题小计
阅读量:5090 次
发布时间:2019-06-13

本文共 1014 字,大约阅读时间需要 3 分钟。

问题:主页面通过url传参banktype=1103给编辑页面,编辑页面的表单中同样有一个banktype参数,表单post自提,并且采用#自提

页面取值:post方法判断上方取值一次,post判断内重新取值一次
调试发现:当表单内设置bantype=1803时自提时,两次对banktype取值没有改变过来,仍然是1103,何解?
解答:
主页面传参时,url是xxx_update.jsp?banktype=1103&matchid=2
表单采用#自提时,问题来了,表单内部设置banktype=1803,提交到的地址#其实是带参刷新,本页原来的url是xxx_update.jsp?banktype=1103&matchid=2,
#自提后一样是提交到xxx_update.jsp?banktype=1103&matchid=2,不管在表单对banktype设置成多少,#自提的这个url又会将banktype重新赋值成了1103,
这样页面刷新时,两次对banktype取值都是1103;

解决方法1:

同样采用#提交,但:
在表单内将banktype更改name为banktype2,在post判断上方,维持不变对banktype取值(可接受主页面提交给编辑页面的url传参),
在post判断内,对banktype2取值,这样banktype2取的值就是表单中这个参数的实际值;

解决方法2:

不采用#自提,form中post提交action到'xxx_update.jsp?matchid=<%=matchid%>'(注意这里不再对banktype进行传参)
注意这里matchid=2要带过来,如果直接提交给xxx_update.jsp,那么表单提交刷新页面后,会取不到这个matchid参数,没这个参数,执行编辑的存储过程时,会执行失败;

解决方法3:

同方法2,不采用#自提,form中post提交action到'xxx_update.jsp,(注意这里不再对banktype进行传参)
要想传递matchid,必须在form表单内部设置一个name=matchid且类型为hidden的input项,并且正确给其赋值,这样表单提交时,一样可以将这个matchid通过post提交给xxx_update.jsp;

 

转载于:https://www.cnblogs.com/tapt/p/7229497.html

你可能感兴趣的文章
[Cypress] Stub Network Requests in a Cypress Test
查看>>
[Javascript] Convert a Callback-Based JavaScript Function to a Promise-Based One
查看>>
并发—Fork-Join框架
查看>>
C++学习笔记之STL标准库(七)map/multimap 关联容器
查看>>
3038 3n+1问题
查看>>
LeetCode 205. Isomorphic Strings
查看>>
js 原生JS实现轮播图
查看>>
nodejs TLS 只加密,未授权,进一步完善
查看>>
pygame 方块随机飞舞动画
查看>>
C语言 知识点
查看>>
Centos和Redhat的区别与联系
查看>>
Eclipse目录
查看>>
请简单介绍一下什么是Spring?
查看>>
自定义异常类
查看>>
基础_列表
查看>>
Android游戏框架Libgdx使用入门
查看>>
MySQL大表优化方案
查看>>
[Winter Vacation] 守护,守望
查看>>
PhantomJS、CasperJS安装配置图文详解
查看>>
自然语言处理(NLP)书籍资源清单
查看>>