【发布时间】:2011-11-13 09:13:09
【问题描述】:
我有一个处理程序 /choice 和一个 textarea 字段,/choicehandler 将返回的信息写入数据库。但在发布表单之前,我想写一个用户名到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>
点击时我想为用户分配一个用户名并将其写入localStorage 和writeToStorage():
<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),我将在稍后解决此问题后将 ajax 调用添加到 /choicehandler。
作为总结,我想一键将javascript变量user写入localStorage和post textarea到/choicehandler。
更新
我正在尝试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>""")
【问题讨论】:
-
你目前的技术有什么问题?
-
我不清楚在哪里或如何使用
onclick="writeToStorage()"
标签: javascript python html