你如何使用用户输入使用AJAX?

时间:2015-11-14 01:09:04

标签: javascript python ajax forms

我有一个项目来构建一个非常简单的网页,它将利用AJAX来显示结果。

在main.py中,我们有一个单词列表,

words = {
    'a': True,
    'aah': True,
    'aahed': True,
    'aahing': True,
    ..............
}

我们已经为我们定义了这个类:

class CheckWordHandler(webapp2.RequestHandler):
    def get(self):
        word = self.request.get('word')
        if word in words:
          self.response.out.write('true')
        else:
          self.response.out.write('false')
    def post(self):
        return self.get()

到目前为止,这是我唯一使用AJAX的index.html,无论何时键入内容,它只显示一个新的随机数。我这样做只是为了了解它是如何工作的。

function checkWord() {
    var xmlHttp = createXmlHttp();
    xmlHttp.onreadystatechange=function() {
        if(xmlHttp.readyState == 4) {
            var text = Math.random();
            var d = document.getElementById('texthere');
            d.innerHTML = text;
        }
    }     
    postParameters(xmlHttp, '/check', '');

}

但是,如果用户正在输入列表中的单词,我是否正在考虑如何使用checkwordhandler来显示麻烦。如何让处理程序检查用户输入?

我有一个表单,用户可以输入任何内容

<form >
    Enter a word:<br>
    <input type="text" onkeypress="checkWord()" name="word">
    <br>
</form> 

那么,我如何从这个表单中获取输入并使用xml检查它是否在单词列表中?

1 个答案:

答案 0 :(得分:0)

更改输入以发送用户键入的值:

onkeypress="checkWord(this.value)"

更改AJAX函数以将值作为参数发送,并显示响应文本。

function checkWord(word) {
    var xmlHttp = createXmlHttp();
    xmlHttp.open('GET', '/check?word=' + encodeURIComponent(word), true);
    xmlHttp.onreadystatechange = function() {
        if(xmlHttp.readyState == 4) {
            var text = xmlHttp.responseText;
            var d = document.getElementById('texthere');
            d.innerHTML = text;
        }
    } 
    xmlHttp.send();
}
相关问题