2012-06-27 127 views
-1

我想创建一个函数,它从页面的各种html元素中获取值来创建一个字符串并传递给一个变量。现在这个工程对除IE 8和IE 9以外的所有浏览器都很适用。IE往往会跳过获取值的部分,直接进入变量并且找不到任何东西。异步JavaScript问题

有没有一种方法可以同步它,在IE中?

function seturl() { 
     var qstring = returnQString(); 

     $('span.keyword').text($.trim($('#hdnKeyWord').attr('value'))); 
     $('input.search_box').attr('value', $.trim($('#hdnKeyWord').attr('value'))); 
     $('#hdnSearchKeyword').attr('value', $.trim($('#hdnKeyWord').attr('value'))); 

     $(".search_box").val($.trim($("#hdn_span_hdnKeyWord").text())); 
     $(".header_inner input[type='text']").focus(); 
     $(".search_term input[type='text']").focus(); 
     $('#locationurl').attr('value', qstring); 
    } 

    function returnQString(){ 
     var qstring = $.trim($('#locationurl').attr('init')); //initial value of the url 
     qstring += "?type=" + $('#hdnSTSearch').attr('value'); // type of handler hit 
     qstring += "&keyword=" + encodeURIComponent($('#hdnKeyWord').attr('value')); // keyword addition 
     qstring += "&pagestart=" + $('#current_page').attr('value'); // pagestart(current page) addition 
     qstring += "&pagesize=" + $('#show_per_page').attr('value'); // per page size addition 
     qstring += "&facets=" // facetsearch 
     $.each(selectedFilter.items, function (index, value) { 
      qstring += value.filter + ","; 
     });  
     qstring += "&selectedSection=" + selectedSection // Section Select 
     return qstring; 
    } 
+1

也许你忘了把async:true或者你没有安装IE浏览器的AJAX? – panzerschreck

+2

你在$(document).ready里面运行js吗? – Angel

+1

我在这段代码中看不到任何异步代码?你能标记与在IE中跳过部分的评论吗? – albin

回答

0

可能是因为分号问题。我发现两个地方的returnQString

function returnQString(){ 
    var qstring = $.trim($('#locationurl').attr('init')); 
    qstring += "?type=" + $('#hdnSTSearch').attr('value'); 
    qstring += "&keyword=" + encodeURIComponent($('#hdnKeyWord').attr('value')); 
    qstring += "&pagestart=" + $('#current_page').attr('value'); 
    qstring += "&pagesize=" + $('#show_per_page').attr('value'); 
    qstring += "&facets=" ; // THIS LINE 
    $.each(selectedFilter.items, function (index, value) { 
     qstring += value.filter + ","; 
    });  
    qstring += "&selectedSection=" + selectedSection; //THIS LINE 
    return qstring; 
}