IE表单操作URL问题

问题描述 投票:1回答:1

最近我开始调整我们的产品到IE兼容性。现在我在IE中面临一个奇怪的问题。

我的表格网址就像这个https://x.com/formurl/dynamicvalue

我的表单元素是

<form action="" method='post'> ... </form>

dynamicvalue持有的一些值是(字母数字字符)

  • 计划
  • 计划2
  • 1234443
  • 544

除了IE之外的所有其他浏览器都将动作发送到https://x.com/formurl/dynamicvalue

IE表单行动正在向https://x.com/formurl发送

我不知道为什么会发生这种情况,我可以替换document.URL来发布Form以解决问题。不过,我想知道IE删除那个dynamicvalue的原因是什么

我在IE-9中测试

请有人教我。

提前致谢。

forms internet-explorer
1个回答
0
投票

我在Internet Explorer 11中发现了这个错误,当读取action设置为空字符串的表单的action属性时。

<form action="" method="post"></form>

如果在javascript中读取form.action属性并且当前URL不包含尾部斜杠,则将删除URL的最后部分。即,如果位置是example.com/xxx/yyyform.action=="example.com/xxx,而如果位置是example.com/xxx/yyy/form.action=="example.com/xxx/yyy/

但是,如果通过单击提交按钮发布表单,则会将其发布到正确的URL,即example.com/xxx/yyyexample.com/xxx/yyy/

我通过使用jQuery的attr函数来检查HTML中的action=""然后我使用location.href代替。

if($(form).attr('action') === '') return location.href else return $(form).attr('action')

(为什么有人这样做?我拦截表单提交并使用ajax发送数据。为此,我需要知道表单要提交的位置)

© www.soinside.com 2019 - 2024. All rights reserved.