Javascript - 在新窗口中选择元素打开URL并提交表单

Bry*_*ynJ 2 javascript forms jquery select form-submit

更新 - 请阅读以下原始问题的更多详细信息

我有一个带有各种url的select表单元素,我想在选择时在新窗口中打开 - 要做到这一点,我在元素的onchange事件中有以下代码:

window.open(this.options[this.selectedIndex].value,'_blank');
Run Code Online (Sandbox Code Playgroud)

这很好用.但是我也想在更改这个选择元素值时提交表单 - 我尝试了各种各样的东西,但我似乎无法让它工作.

我有jquery,所以如果通过它更容易实现那么那很好.

更新 - 我刚刚意识到上面还有另一个问题,因为有些url实际上用于生成和输出pdf,而这些不起作用 - 它们打开然后立即关闭(至少在IE7中).

更新07/05/09 - 我现在已经开启了这个问题的赏金,因为我真的需要提出一个有效的解决方案.我最初通过显示链接而不是表单选择元素来解决问题,但这不再可行.

我需要上述原因的原因是我有大量可能需要查看/打印的文件,太多而无法合理地显示为链接列表.我需要提交表单来记录查看/打印特定文件的事实,然后在表单上显示文件历史记录的日志 - 我很擅长实现这方面的事情,所以不需要那里的帮助,但我认为放置背景会有所帮助.

因此,为了澄清我的要求 - 我需要一个表单选择元素和"查看"按钮,单击它时不仅会在新窗口中启动文件下载(请注意我在这些文件是PDF时遇到的上述问题),还要提交包含select元素的表单.

Cha*_*ant 9

你去吧

<script type="text/javascript">
    $(function() {
        $("#selectElement").change(function() {
            if ($(this).val()) {
                window.open($(this).val(), '_blank');
                $("#formElement").submit();
            }
        });

        // just to be sure that it is submitting, remove this code
        $("#formElement").submit(function() {
            alert('submitting ... ');
        });
    });
</script>

<form id="formElement" method="get" action="#">
    <select id="selectElement">
        <option></option>
        <option value="http://www.deviantnation.com/">View Site 1</option>
        <option value="http://stackoverflow.com/">View Site 2</option>
        <option value="http://serverfault.com/">View Site 3</option>
    </select>
</form>
Run Code Online (Sandbox Code Playgroud)