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