我有一个带有提交按钮的简单输入框,当单击该按钮时,会向服务器端PHP发出XHR请求以获取一些信息。在最简单的形式中,标记看起来像这样:
<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;
}
我不明白为什么这应该拒绝工作,并且真的很感激一些帮助看到这个问题。每次我在输入框中输入一个值并单击按钮时,控制台会短暂闪烁一个&#34; 找不到变量createXMLHTTPRequestObject &#34;浏览器继续使用&#34;?&#34;刷新页面之前的错误附加到URL。这可能是什么问题,为什么&#34;?&#34;如果我已经使用 return(false)语句正式终止了我的onclick函数,那么会附加到URL吗?
该代码在peppyburro.com/test-dictionary上实现。
答案 0 :(得分:1)
您正在尝试调用名为createXMLHTTPRequestObject
的函数,但它不存在。 JS抛出异常并且永远不会到达return (false)
语句。