JS:通过querySelector自动选择HTML <option>标签不会触发对服务器的AJAX请求吗?</option>

时间:2015-01-11 22:36:58

标签: javascript

我正在尝试使用Chrome扩展程序中的javascript注入在网站上自动填充表单。我一直在HTML下拉菜单中使用.querySelector来“选择”选项。对于此目标站点上的某些菜单,一旦用户选择了选项,就会通过ajax生成选项。 .querySelector无法正确复制某些哄骗AJAX响应的行为;基本上,我无法完成HTML表单,因为没有任何内容触发了使用选项填充<select>标签的源jquery。

我正在尝试自动选择的表单看起来像这样

<select name="traveling_to[0]" id="traveling_toSelect0" class="travelingToSelect" >
    //a bunch of option values
</select>    

目标网站上的源JavaScript是这样的(删节...):

$( '.travelingToSelect' ).change( function( e )
    {           
        var destination = this.options[this.selectedIndex].value;
        if( ! destination || destination.length == 0 )
            return;

        //some more conditions here on the site...

        var postData = {
            destination: destination,
            nationality: nationality,
            state: state_of_residence,
            localCode: 'EN'
        };
            $.get( '/ajax/ajax.fillPurposes2.php', postData, function( data ) {
                for( var n in data ) {
                    var newPurpose = document.createElement( 'option' );
                    newPurpose.value = data[n].Code;
                    newPurpose.innerHTML = data[n].Name;
                    newPurpose.title = data[n].Name;
                    newPurpose.description = data[n].Description;
                    target.appendChild( newPurpose );

                //etc...

我用来选择HTML选项的短代码:

function selectOption(formId, selectFormId, HTMLOptionValue) {
    var a = document.getElementById(formId);
    a.querySelector("#"+selectFormId).value = HTMLOptionValue
}

如何通过javascript注入触发此.change jquery函数?

编辑:我尝试在选项之间多次运行selectOption函数,并尝试使用setTimeout让网站加载其所有脚本,但这些解决方法无效。

0 个答案:

没有答案