【问题标题】:Simulate javascript to choose from dropdown模拟 javascript 从下拉列表中进行选择
【发布时间】:2013-09-07 03:32:24
【问题描述】:

我正在尝试模拟 javascript 以从下面的下拉列表中进行选择。我在这里尝试这段代码,但它不起作用。

$('select[name="srctype"]').val(2).trigger('change');

我在这里做错了吗?我的 javascript 是否对下面的这种代码布局搞砸了?

我正在尝试选择value="single"

<select name="srctype" class="formselect" onchange="typesel_change()">
    <option value="any" selected="selected">any</option>
    <option value="single">Single host or alias</option>
    <option value="network">Network</option>
    <option value="pptp">PPTP clients</option>
    <option value="pppoe">PPPoE clients</option>
    <option value="l2tp">L2TP clients</option>
    <option value="wan">WAN subnet</option>
    <option value="wanip">WAN address</option>
    <option value="lan">LAN subnet</option>
    <option value="lanip">LAN address</option>
</select>

【问题讨论】:

    标签: javascript html html-select jquery-trigger


    【解决方案1】:

    这样做:

    $('.formselect').val('single').trigger('change');
    

    在您的代码中,您尝试设置一个不存在的 val 2。正如您在问题中提到的那样,您感兴趣的值实际上是 single

    这是一个演示:http://jsbin.com/eXONuhu/1/

    【讨论】:

    • 所以我尝试了用 srctype 替换 formselect 的脚本,我收到此错误 TypeError: Cannot call method 'val' of null
    【解决方案2】:

    试试:

    $('select[name="srctype"]').val('single')
    

    $('select[name="srctype"] option:eq(1)').prop('selected',1)
    

    正如您在评论中指出的那样,这对您有用:

    (function ($) {
        $('select[name="srctype"]').val('single');
    }).call(this, jQuery);
    

    【讨论】:

    • 啊,我有一个错误说TypeError: Cannot call method 'val' of null
    • 您正在使用 jQuery 语法,因此您需要包含 jQuery 库。你是吗?
    • 嗯,这是在一个网站上,我只是想制作一个已经加载的自动脚本。
    • 嗯,我的解决方案可以从我发布的 jsFiddle 链接中看到。你需要弄清楚你是否正在加载 jQuery。
    • 是的,它成功了! (function ($) { $('select[name="srctype"]').val('single'); }).call(this, jQuery); 完美运行。
    【解决方案3】:
    var myVal = $('select[name="srctype"] option:eq(1)').attr('value');
    $('select[name="srctype"]').val(myVal).trigger('change');
    

    或优化版本

    var mySelect = $('select[name="srctype"]');
    var myVal = $('option:eq(1)', mySelect).attr('value');
    mySelect.val(myVal).trigger('change');
    

    小提琴 - http://jsfiddle.net/P6Ayz/1/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 2011-03-23
      • 1970-01-01
      • 2013-07-29
      相关资源
      最近更新 更多