2016-07-06 111 views
0

我有一個提交按鈕的簡單輸入框,單擊它時會向服務器端PHP發送XHR請求以獲取一些信息。在其最簡單的形式中,標記看起來像這樣:ReferenceError找不到變量createXMLHTTPRequestObject

<input type="text" id="word" class="form-control input-lg lookup-field" placeholder="Enter a Spanish or English word" oninput="deleteicon();" required> 
<button class="btn btn-lg btn-brown lookup-submit" type="submit" id="lookup">Lookup</button> 

按鈕的onclick事件觸發執行XHR請求的函數:

$('#lookup').click(function(){ testlookup($('#word').val()); return(false); }); 

testlookup()函數是如下:

function testlookup(lookupword){ 
    var mean = document.getElementById('meaning'); 
    var waittext = '<div id="loading text-center"><i class="fa fa-4x fa-spinner fa-spin"></i></div>'; 
    var hr = createXMLHTTPRequestObject(); 
    var url = '/assets/engines/dictengine.php'; 
    var vars = "lookup_word=" + lookupword; 
    document.getElementById('word').value = lookupword; 
    hr.open("POST", url, true); 
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    hr.onreadystatechange = function(){ 
     if(hr.readyState == 4 && hr.status == 200){ 
      var return_data = hr.responseText; 
      mean.innerHTML = return_data; 
     else if(hr.status == 500){ mean.innerHTML = "Something went wrong! Please try again later..."; } 
    } 
    hr.send(vars); 
    mean.innerHTML = waittext; 
} 

我不明白爲什麼這個應該拒絕工作,真的很感謝一些幫助看到這個問題。每次在輸入框中輸入一個值並單擊該按鈕時,控制檯會在瀏覽器刷新頁面前短暫閃爍一個「找不到變量createXMLHTTPRequestObject」錯誤,並使用「?」附加到URL。這裏可能是什麼問題,爲什麼是「?」如果我已使用return(false)聲明正式終止了我的onclick函數,那麼是否會附加到URL?

該代碼在peppyburro.com/test-dictionary上實現。

回答

1

您正試圖調用名爲createXMLHTTPRequestObject的函數,但它不存在。 JS引發異常,並且永遠不會到達return (false)聲明。

相關問題