0

是否可以与下拉列表中的选项一起动态创建新的锚标记?

我想从下拉列表框中的新选项卡中打开新页面。有没有其他方法可以做到这一点?

到目前为止,我已经尝试过这个:

function abc
{
    $("#reportimg").fadeOut("slow"); 
    <?php $link="<html><a Onclick='openreport($report2)'>Open</a></html>";?>
    var text="<?php echo $report2.$link;?>";  
    var val="<?php echo $report2;?>"; 
    alert(text);
    $('#report_list').append( new Option(text,val) );
}
4

2 回答 2

2

您实际上不能强制浏览器打开一个新选项卡,只能打开一个新窗口。如今,当您单击“_blank”链接或通过 JavaScript 打开新窗口时,浏览器确实倾向于打开一个新选项卡。

如果您对此感到满意(我怀疑,您不是因为您专门要求打开新标签的解决方案),您可以试试这个:

<!doctype html>
<html>
<body>
    <select id="myDropDown">
        <option>Select a website</option>
        <option value="http://www.google.com">Google</option>
        <option value="http://www.yahoo.com">Yahoo</option>
        <option value="http://www.msn.com">MSN</option>
    </select>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script>
        $(function() {
            $('#myDropDown').change(function(el) {
                window.open($('#myDropDown').val());
            });
        })
    </script>
</body>
</html>

希望有帮助!

于 2013-04-24T13:48:02.863 回答
2

尝试使用这种结构(当然你可以用你的 PHP 生成替换我的东西,但没有必要使用<a>或其他):

<select id="report_list">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

而这个Javascript:

$(document).ready(function () {
    $("#report_list").on("change", function () {
        openreport($(this).val());
    });
});

演示:http: //jsfiddle.net/AyvUZ/2/

这会监听<select>'s 值的变化,这意味着选择了一个选项。您可以使用$(this).val()(这是您在示例代码中似乎需要的全部)获取它的值,并将其传递给openreport. 这一切都是在不修改原始 HTML 的情况下完成的。

于 2013-04-24T13:34:37.620 回答