HTML表单action地址查询参数丢失问题及解决咨询
问题原因及解决办法
原因
当form使用默认的GET提交方式时,浏览器会忽略action属性URL中携带的查询参数(比如这里的?type=week),转而将表单内的输入字段拼接成新的查询字符串附加到URL后。由于你的表单里没有任何输入字段,最终就只剩下http://192.168.178.62/graph.pl。
解决办法
方法1:用隐藏输入字段传递参数
保持GET方式,添加一个隐藏的input来携带type=week参数,提交时参数会被自动拼到URL中:
<form action="http://192.168.178.62/graph.pl"> <input type="hidden" name="type" value="week"> <input type="submit" value="Blah" /> </form>
方法2:改用POST提交(需后端支持)
如果后端的graph.pl支持POST请求,将form的method设为POST,此时action里的查询参数会被保留:
<form action="http://192.168.178.62/graph.pl?type=week" method="POST"> <input type="submit" value="Blah" /> </form> > 注意:POST的语义是提交数据,若只是单纯跳转,优先用方法1更符合HTTP规范。 #### 方法3:直接用a标签模拟按钮(更简洁) 如果只是要实现跳转功能,完全不需要form,用a标签配合CSS模拟按钮样式即可,代码更简洁且符合跳转语义: ```html <a href="http://192.168.178.62/graph.pl?type=week" style="display: inline-block; padding: 4px 12px; border: 1px solid #ccc; border-radius: 4px; text-decoration: none; color: #000; background-color: #f5f5f5;">Blah</a>
内容的提问来源于stack exchange,提问作者sdrawkcaB
相关产品推荐
相关产品推荐

