Javascript 通过jquery更改表单时表单的操作参数错误
我在jquery中遇到了这种奇怪的行为,我似乎无法修复它。 基本上,我正在尝试在提交表单之前将表单的操作参数设置为特定的URL。 当我提交表单时,由于某种原因,我将其设置为的URL只是被附加到另一个URL,我猜这就是以前的URL 这是我用来设置动作参数的代码Javascript 通过jquery更改表单时表单的操作参数错误,javascript,jquery,html,forms,action,Javascript,Jquery,Html,Forms,Action,我在jquery中遇到了这种奇怪的行为,我似乎无法修复它。 基本上,我正在尝试在提交表单之前将表单的操作参数设置为特定的URL。 当我提交表单时,由于某种原因,我将其设置为的URL只是被附加到另一个URL,我猜这就是以前的URL 这是我用来设置动作参数的代码 //clear action parameter jQuery("form[name='form1']").attr('action',''); alert(forwardUrl); //set the
//clear action parameter
jQuery("form[name='form1']").attr('action','');
alert(forwardUrl);
//set the action parameter
jQuery("form[name='form1']").attr('action',forwardUrl);
//action parameter output
alert('action parameter attribute: ' + jQuery("form[name='form1']").attr('action'));
//submit form
jQuery("form[name='form1']").submit();
例如,使用forwardUrl=“test.php”
两个警报的输出都是test.php
但是,当我运行代码并提交表单时,它会将值发布到https://www.test.com/test.php
我意识到,将其附加到发布源的url可能是一种标准行为。如果是这种情况,我怎样才能发布到另一个恰好是forwardUrl
的URL
我还尝试使用.prop()而不是.attr()
提前非常感谢 在
onclick
属性的帮助下,单击submit
按钮时,只需设置操作
<input type='submit' value='Submit' onclick='this.form.action="forwardUrl";' />
document.getElementById('formID').action = 'forwardUrl';
或者使用表单名称作为
document.getElementsByName("form1")[0].action = 'forwardUrl';
使用绝对路径,如Rory所述:
baseUrl = "https://www.test2.com/"; // Domain you need to send the form to
forwardUrl = baseUrl + "test.php";
我通过在forwardUrl上使用
decodeURIComponent(forwardUrl)
解决了这个问题。如果您只提供了一个相对路径,那么该值将附加到当前URL。如果要指定不同的域,则需要提供绝对路径,例如https://www.foo.com/test.php
如果不想重定向到相对路径,则必须包含完整的url而不是文件名。这听起来确实是一个可行的解决方案,不幸的是,对我来说,它没有做到这一点。我通过使用“decodeURIComponent(forwardUrl);”来修复它不过,正如我在回答中提到的。谢谢你的帖子。问题是URL是URI编码的,所以它没有识别出它是完整的URL,谢谢你的提示。