我有2个下拉列表,第一个如下:
<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();
}
上面的代码段会更改值。我可以看到,例如,选择了英语,但它仍然没有翻译页面
答案 0 :(得分:2)
您需要发送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);
}
答案 1 :(得分:0)
这有帮助吗?
var $el = $(".goog-te-combo option[value=" + nLang + "]");
$el.prop('selected',true);
$el.trigger("click");
更多关于.trigger()。
答案 2 :(得分:0)
我有一天做了同样的事情。 您使用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>