私は、テキストエリアのある/choice
ハンドラと、返された情報をデータベースに書き込む/choicehandler
というハンドラを持っています。しかし、フォームを投稿する前に、ユーザ名をlocalStorage
に書きたいと思います。ワンクリックでlocalStorageとポストテキストエリアに書き込む方法は?
これは形式です:
クリックで<form name="choice_form" action="/choicehandler" method="post">
<textarea name="choice" rows="7" cols="50"></textarea><br />
<input type="submit" value="submit your choice">
</form>
私は、ユーザーにユーザー名を割り当て、writeToStorage()
でlocalStorage
にそれを書きたい:
<head>
<script type="text/javascript">
var count = 0;
function writeToStorage()
{
user = "user" + count;
count++;
localStorage.setItem("chooser", user);
};
</script>
</head>
どのように私は何について混乱していますがありますonclick="writeToStorage()"
を使用してwriteToStorage()
に電話をかけ、同時にフォームにaction="/choicehandler"
を付けてください。
これを達成する正しい方法は何ですか。私はGoogle App Engine(Python)を使って作業しています。これを解決したあと、後で/choicehandler
にajax呼び出しを追加します。要約として
、私はワンクリックで/choicehandler
にlocalStorage
とpost
にjavascriptの変数user
テキストエリアを書きたいです。
UPDATE
私はjohn_doe's answerをしようとしていますが、writeToStorage()
は解雇されることはありません。私は間違って何をしていますか?ハンドラの完全なコードは次のとおりです。
class Choice(webapp.RequestHandler):
def get(self):
self.response.out.write("""
<html>
<head>
<script type="text/javascript">
var count = 0;
function writeToStorage()
{
alert("count: " + count);
user = "user" + count;
//this line was giving an error; now it is fixed
//alert("user: " + user and "count: " + count);
alert("user: " + user + " and count: " + count);
count++;
localStorage.setItem("chooser", user);
};
</script>
</head>
<body>
<form name="choice_form" id="choice_form" action="/choicehandler" method="post" onsubmit="writeToStorage()">
<textarea name="choice" rows="7" cols="50"></textarea><br />
<input type="submit" value="submit your choice">
</form>""")
self.response.out.write("""
</body>
</html>""")
現在の技術には何が問題なのですか? – lonesomeday
'onclick =" writeToStorage() "'を使用する方法がわかりません – Zeynel