IE表单操作URL问题

时间:2014-11-28 05:53:58

标签: forms internet-explorer

最近我开始调整我们的产品到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来发布表单以解决问题。不过,我想知道IE删除dynamicvalue

的原因是什么

我在IE-9中测试

请有人教我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

在阅读将action设置为空字符串的表单的action属性时,我也在Internet Explorer 11中发现了此错误。

<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/

但是,如果通过点击提交按钮发布表单,则会将其发布到正确的网址,即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发送数据。为此,我需要知道表单要提交的位置)