关于form表单以get方式传参的问题

问题:
          使用form标签以get方式提交的表单,使用❓问号传参会传不过去

现象:

 <form id="tableForm" method="get" action="./search_"+pageNo+".jspx?q=${q!}">
          <input type="hidden" name="pageNo" value="${pageNo!}"/>
</form>

浏览器地址栏中显示:http://127.0.0.1:8080/epsCms/search_1.jspx?pageNo=1
          
会被form表单里面的hidden设置的参数覆盖。而使用post可以用问号传参


解决方法:
          
<form id="tableForm" method="get" action="./search_"+pageNo+".jspx>
          <input type="hidden" name="pageNo" value="${pageNo!}"/>
          <input type="hidden" name="q" value="${q!}"/>
</form>

浏览器地址栏中显示:http://127.0.0.1:8080/epsCms/search_1.jspx?pageNo=1&q=2

在使用JavaScript提交表单时,我们需要使用form的submit()方法来触发表单的提交事件。传递参数的方法有多种。 1. GET方式传递参数:在form标签的action属性中设置要提交到的URL,并将参数直接附加在URL后面。例如: ```html <form id="myForm" action="http://example.com/myPage?param1=value1&param2=value2" method="GET"> <!-- 表单内容 --> </form> ``` 在提交表单时,浏览器会将表单数据与URL中的参数一起发送给服务器。 2. 使用JavaScript动态构建URL参数:可以使用JavaScript来动态构建URL参数,并通过设置form的action属性来传递参数。例如: ```html <form id="myForm" action="http://example.com/myPage" method="GET"> <!-- 表单内容 --> </form> <script> var form = document.getElementById("myForm"); form.action = "http://example.com/myPage?param1=" + encodeURIComponent(value1) + "&param2=" + encodeURIComponent(value2); form.submit(); </script> ``` 在JavaScript中,我们可以使用encodeURIComponent()函数将参数值进行编码,以确保在URL中正确传递参数。 3. 使用POST方式传递参数:如果希望将参数作为请求的体部分发送,可以将表单的method属性设置为POST,并使用JavaScript来动态构建表单数据。例如: ```html <form id="myForm" action="http://example.com/myPage" method="POST"> <!-- 表单内容 --> </form> <script> var form = document.getElementById("myForm"); var formData = new FormData(form); formData.append("param1", value1); formData.append("param2", value2); var xhr = new XMLHttpRequest(); xhr.open("POST", form.action); xhr.send(formData); </script> ``` 在这种方法中,我们使用了FormData对象来存储表单数据,并使用XMLHttpRequest发送POST请求。通过append()方法,我们可以将额外的参数添加到formData对象中。 需要注意的是,使用这种方式传递的参数会出现在URL中,而是作为请求的主体部分发送给服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值