我遇到了jquery这种奇怪的行为,我似乎无法修复它。 基本上我正在尝试在提交表单之前将表单的action参数设置为特定的URL。 当我提交表单时,由于某种原因,我将其设置为只是附加到不同的URL,我想这是之前的URL。
这是我用来设置动作参数的代码。
//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
。
我意识到可能是附加到其发布的网址的标准行为。如果是这种情况,我该如何POST到恰好是forwardUrl
的其他网址?
我也尝试使用.prop()而不是.attr()。
非常感谢你!
答案 0 :(得分:0)
您可以在action
属性
submit
按钮时设置onclick
<input type='submit' value='Submit' onclick='this.form.action="forwardUrl";' />
或将您的代码更改为此类代码,首先向表单提供id
并使用id
设置action
属性
document.getElementById('formID').action = 'forwardUrl';
或使用表单名称
document.getElementsByName("form1")[0].action = 'forwardUrl';
答案 1 :(得分:0)
使用绝对路径,如Rory所述:
<head>
<style type="text/css">
div.gradient {
color: #000000;
width: 800px;
height: 200px;
}
div.gradient:after {
background: url(SOME_BACKGROUND);
background-size: cover;
content:'';
position:absolute;
top:0;
left:0;
width:inherit;
height:inherit;
opacity:0.1;
}
</style>
</head>
<body>
<div class="gradient">Text</div>
</body>
答案 2 :(得分:0)
感谢您的回答。
我实际上只是通过在forwardUrl上使用decodeURIComponent(forwardUrl)
来解决问题。