我想要在控制台中执行这段代码,我想要做的是更改一些字段的值并继续提交。
var animal = new Array(); //Declare Array 
animal[0] = 'cat';
animal[1] = 'dog';
animal[2] = 'cow';
animal[3] = 'snake';
animal[4] = 'goat';
animal[5] = 'tiger';
animal[6] = 'lion';
animal[7] = 'horse';
var createFunc = function(i){
    return function(){
        var token_field = document.getElementById('animal_name'); 
        token_field.value = animal[i]; //Change the value of the field with each array value
        var path_field = document.getElementById('To_do');
        path_field.value='feed'; // Change the other field with 'feed'
        var submit_all = document.getElementById('graph_submit');
        submit_all.click(); //submit the form
    };
};
for (var i = 0; token.length > i; i++) {
    setTimeout(createFunc(i), 2000);
}但当单击按钮时,页面会重新加载并中断循环……因此,只有第一个值被提交,其他值保留。
第一次提交(超过2秒)后,提交页面的代码停止执行。由于POST查询,页面将被重新加载。但是我想要提交所有的值,但是页面被重新加载。
我能做些什么呢?
发布于 2014-02-19 14:43:23
单击“graph_submit”作用域时,有可能发生更改,循环中断。
您可以在此处使用防止默认功能。
发布于 2014-02-19 14:52:15
我不是很清楚你的代码。但是对于第一次看,我可以猜到你创建了提交页面的队列。
第一次提交(超过2秒)后,提交页面的代码停止执行。由于POST查询,页面将被重新加载。
编辑:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/jquery-2.1.0.min.js"></script>
</head>
<body>
    <script>
        var animals = new Array();
        animals[0] = 'cat';
        animals[1] = 'dog';
        animals[2] = 'cow';
        animals[3] = 'snake';
        animals[4] = 'goat';
        animals[5] = 'tiger';
        animals[6] = 'lion';
        animals[7] = 'horse';
        $(document).ready(function () {
            $('#q').attr('value', JSON.stringify(animals));
            $('#ajax').click(function () {
                $.post("/", JSON.stringify(animals));
            });
        });
    </script>
    <form id="main" action="http://www.google.com/search">
        <input id="q" name="q" type="hidden" value="" />
        <input id="submit" type="submit" value="Using submit" />
        <input id="ajax" type="button" value="Using ajax" />
    </form>
</body>
</html>“使用ajax”post数据你可以在firebug中检入。这将是相同的。
“猫”“狗”“牛”“蛇”“山羊”“虎”“狮子”“马”
我认为你需要阅读一些HTML表单,ajax请求和HTTP方法的基础知识。
发布于 2014-02-19 18:49:11
好的。这里需要更多的澄清。你为什么要使用setTimeout?因为在每个循环中,你只发送i。一个是你的循环,另一个是setTimeOut,这会造成冲突。
所以这里有一些建议:
setTimeout( function(){ var i =0;createFunc(i);i++;},2000);
请不要同时使用。也许这将是有益的和清晰的。
https://stackoverflow.com/questions/21872870
复制相似问题