Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE11中需要鼠标点击,但Firefox中不需要_Javascript_Jquery_Ajax_Forms - Fatal编程技术网

Javascript IE11中需要鼠标点击,但Firefox中不需要

Javascript IE11中需要鼠标点击,但Firefox中不需要,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我有一个HTML表单,其中包含一个AJAX调用,用于获取表单的一些数据,特别是一组select选项。这很好,在Firefox(50.0.2)中,在处理AJAXsuccess响应后,可以选择结果。为了防止表单提交,在我对ajaxjqueryget所需的数据按enter键之前,我在表单提交和所有工作正常的情况下防止了默认值 但在Internet Explorer 11中,处理AJAX呼叫响应后,选择数据不会立即可见,但如果我在表单区域的任何位置单击鼠标(鼠标左键),则AJAX响应数据将变为可见和可选

我有一个
HTML
表单,其中包含一个
AJAX
调用,用于获取表单的一些数据,特别是一组select选项。这很好,在Firefox(50.0.2)中,在处理
AJAX
success响应后,可以选择结果。为了防止表单提交,在我对
ajaxjqueryget
所需的数据按enter键之前,我在表单提交和所有工作正常的情况下防止了默认值

但在Internet Explorer 11中,处理
AJAX
呼叫响应后,选择数据不会立即可见,但如果我在表单区域的任何位置单击鼠标(鼠标左键),则
AJAX
响应数据将变为可见和可选择

我曾尝试使用jquerytriggerclick来模拟鼠标左键单击表单区域中的任何位置,但我无法让它工作。有人能建议如何让IE11像Firefox那样工作吗?任何建议都将不胜感激

如果可能有帮助的话,我已经附上了
AJAX
响应代码的一部分-响应采用
XML
格式

// Now insert the received response(s) into the DOM:
$(data).find('result').each(function()
   {  
        // $(data).find('result') creates an array (which hopefully will not be empty)
        var dataToDisplay = $(this).text();
        // we now have a pipe-delimited string - convert it into an array
        var data_array = dataToDisplay.split('|');
        var dog_pk = data_array[0];
        var dog_name = data_array[1];
        var dog_breed = data_array[2];
        var customer = data_array[3];
        var the_rest = dog_name + ", " + dog_breed + ", " + customer;

        $('#dog_pk').append("<option value=" + dog_pk + ">" + the_rest + "</option>");
});

您是否尝试过先在内存中附加值,并且仅在完成后才将其附加到DOM。每次在循环中更新DOM可能会非常昂贵。我想我不知道如何做到这一点-你能帮忙吗?此外,交易量非常低。你的意思是创建一个包含所有选项的JS变量,然后附加它吗?你能把AJAX请求和附加的s分开来调试它吗?当我使用您的代码并手动指定合适的
数据
值时,它在IE11上对我来说运行良好。handle_response函数以“function handle_response(data,status)”开头,响应数据只是一系列封装在XML标记中的管道分隔字符串。您是否尝试过先在内存中追加值,并且仅在完成后才将其附加到DOM中。每次在循环中更新DOM可能会非常昂贵。我想我不知道如何做到这一点-你能帮忙吗?此外,交易量非常低。你的意思是创建一个包含所有选项的JS变量,然后附加它吗?你能把AJAX请求和附加的s分开来调试它吗?当我使用您的代码并手动指定合适的
数据
值时,它在IE11上对我来说运行良好。handle_response函数以“function handle_response(data,status)”开头,响应数据只是一系列封装在XML标记中的管道分隔字符串。
$(function() 
    {   // get dog and owner names function
        $('#dogname_start').change(function(event)
            {   
                var params = "params=";
                params += String ($('#dogname_start').val());
                params = encodeURI(params);
                $('#add_appointment').submit(function(event)
                    {
                        event.preventDefault();
                        // alert("In dogname_start change form submit function, params are " + params);
                    });
                $.get(
                    './modules/get_dognames.xml.php',
                    params,
                    handle_response
                    );  // end AJAX get (note: type defaults to html)

            }); // end change function on #dogname_start        

    }); // end get dog and owner names function