У меня есть обработчик /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
текстовое поле в /choicehandler
одним щелчком мыши.
UPDATE
Я пытаюсь john_doe ответить , но 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>""")