触发下拉列表上的单击事件

Trigger click event on a dropdown list

本文关键字:单击 事件 下拉列表      更新时间:2023-09-26

我有两个下拉列表,第一个如下:

<select name="country_id" id="country_id" tabindex="1" onchange="changeLang(this);">
    {section name=jj loop=$jezyki}            
        <option value="{$jezyki[jj].code}" {if $LANG.lang == $jezyki[jj].code} selected {/if}>{$jezyki[jj].name}</option>
    {/section}  
</select>

第二个是从谷歌服务器下载的,它是一个谷歌翻译小部件。我需要的是当用户从第一个下拉菜单中单击选项时,脚本应该改变小部件下拉列表的值并触发单击函数来实际翻译页面。

        function changeLang(someth){
                var nLang = someth.value;
                //$(".goog-te-combo option").val(someth.value);
              //  $(".goog-te-combo").trigger('click');    
        $(".goog-te-combo option[value="+nLang+"]").prop('selected',true).click();
            }
上面的

代码段改变了该值。例如,我可以看到选中了英文,但它仍然不翻译

页面

你需要调度onchange事件:

function changeLang(someth) {
    var nLang = someth.value,
        evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    $('.goog-te-combo').val(nLang)[0].dispatchEvent(evt);
}

这有帮助吗?

var $el = $(".goog-te-combo option[value=" + nLang + "]");
$el.prop('selected',true);
$el.trigger("click");

关于.trigger()的更多信息。

前几天我也做过同样的事情。简单的解决方案,因为你正在使用jQuery:

<select id="selectId"></select>
<script type="text/javascript">
/*for an action event upon a change i did this*/
$('#first-dropdown-id').change(function(){
     //your code
     /*nesting the click trigger function for it to get triggered*/
     $('#widget-dropwdown-id').trigger( "click" ); 
     }
});

</script>