Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t从外部触发POST方法表单<;表格>;_Javascript_Html_Forms_Http Post - Fatal编程技术网

Javascript Can';t从外部触发POST方法表单<;表格>;

Javascript Can';t从外部触发POST方法表单<;表格>;,javascript,html,forms,http-post,Javascript,Html,Forms,Http Post,作为游戏的一部分,我希望将值(动态地)分配给html表单,然后将它们“发布”到views.py以进行进一步的操作(并不重要) 我的问题是,我似乎无法从表单外部触发表单的POST部分。嗯 代码: JS: 和html: <form action="" method="post" id="postForm">{% csrf_token %} <input type="hidden" id="userField" name="user"></input&

作为游戏的一部分,我希望将值(动态地)分配给html表单,然后将它们“发布”到views.py以进行进一步的操作(并不重要)

我的问题是,我似乎无法从表单外部触发表单的POST部分。嗯

代码:

JS:

和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>
但我真的不明白为什么,因为它们都连接到同一个函数

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();   
}
这是一个


按钮工作的原因是,当您单击它时,您观察到它的默认行为,即提交表单。

这与django无关。去掉那个标记。为什么表单=document.createElement('postForm');不应该是getElementById吗?简单回答:最后,我会遇到大约50个表单,它们应该能够相互交互,而不管彼此之间如何。所以我觉得我不能在运行中生成它们。你能澄清一下通过在运行中创建
你希望得到什么吗?(在我看来,似乎没有什么好的理由需要额外的工作;我一定是遗漏了什么。)只使用一个表单的优点是,您可以在表单中只放置一次某种ID,并且该字段的内容每次都会被重新发送(因此您可以很容易地同时区分两个客户端)。如果您有50个不同的操作,我只需要使用一个表单并添加另一个字段然后将其“值”设置为50个不同的可能性(init?add?subract?close?等)。无需查询DOM两次。我知道,但我不是来这里完全优化他的代码的,只是给一个他会适应的问题一个解决方案。。。不过,我很想传达一个想法,在这种情况下,我是这么做的
Testing Name
3
[20/May/2012 03:41:43] "POST / HTTP/1.1" 200 1854
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();   
}
function postIt()   {       
        var form = document.getElementById('postForm');

        document.getElementById('userField').value = "Testing Name";
        document.getElementById('scoreField').value = score;
        alert(score);

        form.submit();   
    }