我想在更改时向表单添加一个操作,这样当你在表单中选择一个选项时,你会转到我在JS中设置的url,并在选项中选择了该参数。
在下面的代码中,我有两个警报,这两个警报都获得了所需的网址。他们甚至带我到一个网页似乎没问题,但内容似乎没有加载。
如果我的网址在浏览器中为http://www.example.com/index.php?a=108&tg=2
,则在我选择表单后,它的功能就像我只有http://www.example.com/index.php
一样。
See fiddle
<div id="myID">108</div>
<form class="aclass" target="_blank" method="post">
<select>
<option value="1">aaa</option>
<option value="2">bbb</option>
</select>
</form>
<script>
var pageurl = window.location.protocol + "//" + window.location.host + window.location.pathname;
var myID = jQuery('#myID').html() || '';
var myURL = '?a=' + myID + '&tg=';
jQuery('.aclass select').change(function () {
var opVal = jQuery(this).val() || 0;
var finalURL = pageurl + myURL + opVal;
alert(finalURL);
jQuery(this).closest(".aclass").attr("action", finalURL);
alert(jQuery(this).closest(".aclass").attr('action'));
this.form.submit();
});
</script>
我在这里做错了怎样才能真正从我的表单中获得http://www.example.com/index.php?a=108&tg=2?
答案 0 :(得分:1)
如果您需要使用POST提交表单,那么实际的查询字符串将被处理为GET变量。您可以创建隐藏的输入字段,并在提交之前将它们添加到表单中,以将这些变量作为POST变量接收。
答案 1 :(得分:0)
var pageurl = <?php echo $_SERVER['PHP_SELF']; ?>;
var myID = jQuery('#myID').html() || '';
var myURL = '?a=' + myID + '&tg=';
jQuery('.aclass select').change(function () {
var opVal = jQuery(this).val() || 0;
alert(opVal);
var finalURL = pageurl + myURL + opVal;
alert(finalURL);
jQuery(this).closest(".aclass").attr("action", finalURL);
alert(jQuery(this).closest(".aclass").attr('action'));
this.form.submit();
});
请试试这个