2014-03-05 32 views
0

所以我有一個網頁,它執行Ajax調用以從服務器獲取數據。但是,當我觸發Ajax調用時,我的網頁上的輸入框(本例中爲#serial)停止響應(我無法輸入它或任何內容)。有誰知道是什麼原因造成的?jQuery AJAX調用禁用輸入框

<div id="filterconfig"> 
    <b>Serial Number:</b> <br/><input type="text" id="serial"/> <br/> 
<button type="button" onclick="clicked($('#serial').val(), $('[name=location]:checked').val(), $('#exception'), $('[name=direction]:checked').val(),$('[name=server]:checked').val())">Filter</button> 
</div> 

下面是被調用的函數:

$(document).ready(assignOnclick); 

    function assignOnclick() { 
     $("tbody > tr").click(function() { 
      $(this).onclick = GetSelectedReadableForm(this); 
     }); 
    } 

function callAjax() { 
     var urlHuman = encodeURI(someUrl); 
     var urlHex = encodeURI(someUrl); 

     $.ajax({ 
      url: urlHuman, 
      async:false, 
      cache: false, 
      success: function (data) { 
       $('#stringview').find('.human').val(data); 
      } 
     }); 

     $.ajax({ 
      url: urlHex, 
      async:false, 
      cache: false, 
      success: function (data) { 
       $('#stringview').find('.hex').val(data); 
      } 
     }); 

    } 

    function GetSelectedReadableForm(obj) { 
     $("tr").css({ 'background-color': '' }); 
     $(obj).closest('tr').css({ 'background-color': '#ccc' }); 
     row_id = parseInt($(obj).closest('tr').find('#rowID').attr("value")); 
     callAjax(); 
    } 
+0

這是'async:false',它是萬惡之源,它會鎖定瀏覽器。 – adeneo

+0

@ adeneo它仍然發生沒有'async:false' :( – n00b

+0

然後你正在做其他東西,它混淆了 – adeneo

回答

1
jQuery中DOC

異步(默認值:true)類型:Boolean默認情況下,所有的請求都是異步發送 (即默認設置爲true)。如果您需要 同步請求,請將此選項設置爲false。跨域請求 和dataType:「jsonp」請求不支持同步操作。 請注意,同步請求可能會暫時鎖定瀏覽器, 禁用請求處於活動狀態時的任何操作。

您是否確實需要同步請求?

你可以嘗試結果和ansyncronous請求同步:

$.when(
     $.ajax({ url: urlHuman, cache: false}), 
     $.ajax({ url: urlHex, cache: false}) 
    ).done(function(data1, data2) { 
     $('#stringview').find('.human').val(data1); 
     $('#stringview').find('.hex').val(data2); 
    }); 
+0

我想要一個同步請求,因爲它使#stringviews的加載同時發生,但這似乎並不是問題,它實際上只是一個輸入框,我的其他按鈕(單選按鈕等工作) – n00b

+0

您可以使用$ .when同步請求結果 –

+0

感謝$ .when! – n00b

0

的問題是我的「的onkeydown」事件分配整體功能,它是防止對並不打算按鍵默認行爲對於它