2017-02-26 8 views
2

私はWebサーバーのドキュメントを読んできましたが、何も見つかりませんでした。Racket Webアプリケーションのキー押下をどのように検出しますか?

は、ここで基本的なWebアプリケーションのための私のコードです:

#lang racket 

(require web-server/servlet 
     web-server/servlet-env) 

(define test '()) 

(define (start request) 
    (define bindings (request-bindings request)) 
    (cond 
    ((exists-binding? `cb1 bindings) 
    (set! test '(1 2 3)) 
    (printf "~a" "(test) has been set to '(1 2 3)!"))) 
    (response/xexpr 
    `(html 
    (head (title "My Blog")) 
    (body 
     (h1 "Under construction") 
     (form ,`(input ((name "cb1") (type "checkbox")) (value " Checkbox 1")) 
      (p (input ((type "submit") (value "Submit"))))))))) 

(serve/servlet start) 

私は、このようななどの主要を入力してくださいを押して提出し、代わりに押さなくても提出することができるようにしたいです。これは可能ですか?

答えて

3

Racketサーブレットは、クライアントに送信されるWebページ(html形式)を生成します。 クライアントでは、Webページがユーザーのブラウザに表示されます。ユーザがキーを押すと、ブラウザはそれを処理する必要があります。キープレスで特別なことをブラウザに行わせる唯一の方法は、JavaScriptでハンドラを書くことです。プログラムのラケット部分はサーバー上でのみ実行されることに注意してください。

要するに、JavaScriptの小さな部分を書き、htmlページに埋め込む必要があります。

JavaScriptでこれを行う方法の詳細については、How to submit form on keypress? を参照してください。

関連する問題