作为游戏的一部分,我希望将值(动态地)分配给html格式,然后将它们“POST”到views.py以进行进一步操作(不是很重要)
我的问题是我似乎无法从外部触发我的表单的POST部分。诶。
代码:
JS:
var score,x;
function setScore(x){
score=x;
alert(score);
}
function getScore(){
return score;
}
function postIt() {
form = document.createElement('postForm');
document.getElementById('userField').value = "Testing Name";
document.getElementById('scoreField').value = score;
alert(score);
form.submit();
}
和html:
<form action="" method="post" id="postForm">{% csrf_token %}
<input type="hidden" id="userField" name="user"></input> Namn.<br>
<input type="hidden" id="scoreField" name="score"></input> Score.<br>
<button onclick="postIt()">Shoot</button>
<a href="javascript:setScore(1)">1</a> -
<a href="javascript:setScore(2)">2</a> -
<a href="javascript:setScore(3)">3</a> -
<a href="javascript:setScore(4)">4</a> -
<a href="javascript:setScore(5)">5</a> -
<a href="javascript:setScore(6)">6</a>
<p>
<span onclick="postIt()">Skicka</span>
</form>
问题是我从按钮获得了可疑结果,但没有得到span-'trigger'。
预期且正确的终端窗口打印(在我将3分配为得分后):
Testing Name
3
[20/May/2012 03:41:43] "POST / HTTP/1.1" 200 1854
我真的不明白为什么,因为他们都连接到同一个功能..?
答案 0 :(得分:2)
function postIt() {
var form = document.getElementById('postForm');
document.getElementById('userField').value = "Testing Name";
document.getElementById('scoreField').value = score;
alert(score);
form.submit();
}
这是一个fiddle
按钮工作的原因是因为当您点击它时,您会发现它是提交表单的默认行为。
答案 1 :(得分:0)
function postIt() {
form = document.createElement('postForm');
document.getElementById('userField').value = "Testing Name";
document.getElementById('scoreField').value = score;
alert(score);
form.appendChild(document.getElementById('userField'));
form.appendChild(document.getElementById('scoreField'));
form.submit();
}