html-form – 在action属性中已经使用?key = val查询字符串的表单提交忽略该查询字符串

前端之家收集整理的这篇文章主要介绍了html-form – 在action属性中已经使用?key = val查询字符串的表单提交忽略该查询字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我试图在保留页面的当前查询字符串的同时向自己提交页面.

所以页面是sb.local / sb / cat.PHP?brandcode = JM& t = cat_items我拉出查询字符串并将其粘贴回html表单以保留参数.这是结果形式:

<form id="brand-select" method="get" action="?brandcode=JM&t=cat_items" name="brand-select">
Brand:
<select id="brandcode" style="width:207px" tabindex="3" name="brandcode" @R_403_103@="">
<option value=""></option>
<option class="brand-option" value="AX" data-brandid="110"> Aetrex </option>
<option class="brand-option" value="AL" data-brandid="12"> Alden </option>
<option class="brand-option" value="ETC" data-brandid="11"> Etc </option>
</select>
<input type="submit" value="go">
</form>

当我通过选择Aetrex的下拉列表(值AX)提交表单时,它会转到以下URL:

sb.local / SB / cat.PHP?brandcode = AX
换句话说,它会删除动作中的“t = cat_items”.它还削减了“brandcode = JM”,但我几乎可以期待它们,因为它们是重复的.

这不是我的预期,我预计如果action属性中有一个查询字符串,它会将表单值附加到该查询字符串(例如sb.local / sb / cat.PHP?brandcode = JM& t = cat_items& brandcode = AX.相反,它似乎完全用仅在表单中的那些元素替换查询字符串.

表单操作属性是否不可用于存储查询参数,只有更基本的URL信息?

编辑:请注意,我可以解决这个问题,解析每个参数,然后手动将每个参数放入自己的隐藏字段,除了我想要允许更改的任何参数,我只是希望有一些更简单的方法.
我测试了一个非冲突的查询字符串,即使没有冲突(在Firefox中)也被整体替换,所以在此基础上,查询字符串似乎在get表单的action属性中无用?或者我错过了什么.

解决方法

我知道这是一个老问题,但解决方案实际上非常简单(而且很整洁!).

您所要做的就是使用格式为name =“key”和value =“value”的隐藏输入字段发送查询字符串.

?brandcode = JM& t = cat_items将“翻译”为:

<input type="hidden" name="brandcode" value="JM" />
<input type="hidden" name="t" value="cat_items" />

从您的操作中完全删除查询字符串.

猜你在找的HTML相关文章