最近我开始调整我们的产品到IE兼容性。现在我在IE中面临一个奇怪的问题。
我的表格网址就像这个https://x.com/formurl/dynamicvalue
我的表单元素是
<form action="" method='post'>
...
</form>
dynamicvalue
持有的一些值是(字母数字字符)
除了IE之外的所有其他浏览器都将动作发送到https://x.com/formurl/dynamicvalue
IE表单行动正在向https://x.com/formurl
发送
我不知道为什么会发生这种情况,我可以替换document.URL来发布Form以解决问题。不过,我想知道IE删除那个dynamicvalue
的原因是什么
我在IE-9中测试
请有人教我。
提前致谢。
我在Internet Explorer 11中发现了这个错误,当读取action
设置为空字符串的表单的action
属性时。
<form action="" method="post"></form>
如果在javascript中读取form.action属性并且当前URL不包含尾部斜杠,则将删除URL的最后部分。即,如果位置是example.com/xxx/yyy
,form.action=="example.com/xxx
,而如果位置是example.com/xxx/yyy/
,form.action=="example.com/xxx/yyy/
。
但是,如果通过单击提交按钮发布表单,则会将其发布到正确的URL,即example.com/xxx/yyy
或example.com/xxx/yyy/
。
我通过使用jQuery的attr
函数来检查HTML中的action=""
然后我使用location.href
代替。
if($(form).attr('action') === '') return location.href else return $(form).attr('action')
(为什么有人这样做?我拦截表单提交并使用ajax发送数据。为此,我需要知道表单要提交的位置)