在表单更改发送到URL与jQuery

时间:2014-05-05 05:16:33

标签: javascript jquery html forms onchange

我想在更改时向表单添加一个操作,这样当你在表单中选择一个选项时,你会转到我在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

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();
});

请试试这个