Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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输入循环到html表单_Javascript_Html_Forms - Fatal编程技术网

将javascript输入循环到html表单

将javascript输入循环到html表单,javascript,html,forms,Javascript,Html,Forms,我正在使用javascript以表单的形式将文本输入到我的网页中。我在测试中使用数字,从1开始,递增1到1000 num=1 while (num<1001){ document.getElementById('numberIn').value=num document.forms[0].submit() num+1 } num=1 而(num您已经创建了一个无限循环 您需要执行num++或num=num+1而不仅仅是num+1 您没有增加变量,您只是计算num+1。您创建

我正在使用javascript以表单的形式将文本输入到我的网页中。我在测试中使用数字,从1开始,递增1到1000

num=1

while (num<1001){
  document.getElementById('numberIn').value=num
  document.forms[0].submit()
  num+1
}
num=1

而(num您已经创建了一个无限循环

您需要执行
num++
num=num+1
而不仅仅是
num+1


您没有增加变量,您只是计算num+1。

您创建了一个无限循环

您需要执行
num++
num=num+1
而不仅仅是
num+1


您没有增加变量,只是计算num+1是多少。

一旦表单提交,HTML页面基本上会刷新,这意味着num将始终为1,您将始终只提交1。如果确实需要提交,但需要提交1到100之间的值,则需要将num值存储在cookie中每次提交之前,通过从cookie中读取值来增加值,这是唯一的方法。使用以下函数读取和设置cookie

var createCookie = function(name, value, days) {
var expires;
if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toGMTString();
}
else {
    expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(c_name) {
if (document.cookie.length > 0) {
    c_start = document.cookie.indexOf(c_name + "=");
    if (c_start != -1) {
        c_start = c_start + c_name.length + 1;
        c_end = document.cookie.indexOf(";", c_start);
        if (c_end == -1) {
            c_end = document.cookie.length;
        }
        return unescape(document.cookie.substring(c_start, c_end));
    }
}
return "";
}

这有帮助吗?

一旦提交表单,HTML页面基本上会刷新,这意味着num将始终为1,并且您将始终只提交1。如果确实需要提交,但需要提交1到100之间的值,那么您需要在每次提交之前将num值存储在cookie中,然后将值增加1从cookie中读取它,这是唯一的方法。使用以下函数读取和设置cookie

var createCookie = function(name, value, days) {
var expires;
if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toGMTString();
}
else {
    expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(c_name) {
if (document.cookie.length > 0) {
    c_start = document.cookie.indexOf(c_name + "=");
    if (c_start != -1) {
        c_start = c_start + c_name.length + 1;
        c_end = document.cookie.indexOf(";", c_start);
        if (c_end == -1) {
            c_end = document.cookie.length;
        }
        return unescape(document.cookie.substring(c_start, c_end));
    }
}
return "";
}

这有用吗?

尝试使用SessionStorage,即使重新加载页面,它也会存储数字

$( document ).ready(function() {
        var num = 1000;
    if (!sessionStorage['currentNo']) {  
        sessionStorage['currentNo'] = 0;
    }

        if(sessionStorage['currentNo']<= num)
        {
          document.getElementById('numberIn').value=sessionStorage['currentNo'];
           sessionStorage['currentNo'] = sessionStorage['currentNo']+1;
          document.forms[0].submit();
        }

});
$(文档).ready(函数(){
var-num=1000;
如果(!sessionStorage['currentNo']){
会话存储['currentNo']=0;
}

如果(sessionStorage['currentNo']尝试使用sessionStorage,则即使页面重新加载,它也会存储数字

$( document ).ready(function() {
        var num = 1000;
    if (!sessionStorage['currentNo']) {  
        sessionStorage['currentNo'] = 0;
    }

        if(sessionStorage['currentNo']<= num)
        {
          document.getElementById('numberIn').value=sessionStorage['currentNo'];
           sessionStorage['currentNo'] = sessionStorage['currentNo']+1;
          document.forms[0].submit();
        }

});
$(文档).ready(函数(){
var-num=1000;
如果(!sessionStorage['currentNo']){
会话存储['currentNo']=0;
}

如果(sessionStorage['currentNo']我想知道为什么不使用AJAX

有了它,您可以在不离开当前页面的情况下请求或提交信息。在这种情况下,这听起来很理想。我们可以通过编程方式在表单上填写输入、提交、更改元素并再次提交,次数可以根据需要而定

下面是一个快速的“脏”示例实现

它打印到控制台10次

0
1
2
3
4
5
6
7
8
9
1.FormAction.html

“严格使用”;
函数byId(id){return document.getElementById(id);}
函数myAjaxPostForm(url、formElem、successCallback、errorCallback)
{
var ajax=new-XMLHttpRequest();
ajax.onreadystatechange=函数()
{
if(this.readyState==4&&this.status==200)
成功回调(this);
}
ajax.onerror=函数()
{
log(“AJAX请求失败:”+url);
错误回调(本);
}
open(“POST”,url,true);
var formData=新formData(formElem);
发送(formData);
}
////////////////////////////////////////////////////////////////////////////////
window.addEventListener('load',onDocLoaded,false);
函数onDocLoaded(evt)
{
byId('goBtn')。addEventListener('click',onGoBtn',false);
}
var curIter=0,maxIter=10;
功能onGoBtn(evt)
{
byId('numberIn')。值=curIter;
myAjaxPostForm('formAction.php',byId('mForm'),onAjaxDone);
函数名为jaxdone(ajax)
{
log(ajax.responseText);
curIter++;
if(库里特
2.FormAction.php
我想知道为什么不使用AJAX

有了它,您可以在不离开当前页面的情况下请求或提交信息。在这种情况下,这听起来很理想。我们可以通过编程方式在表单上填写输入、提交、更改元素并再次提交,次数可以根据需要而定

下面是一个快速的“脏”示例实现

它打印到控制台10次

0
1
2
3
4
5
6
7
8
9
1.FormAction.html

“严格使用”;
函数byId(id){return document.getElementById(id);}
函数myAjaxPostForm(url、formElem、successCallback、errorCallback)
{
var ajax=new-XMLHttpRequest();
ajax.onreadystatechange=函数()
{
if(this.readyState==4&&this.status==200)
成功回调(this);
}
ajax.onerror=函数()
{
log(“AJAX请求失败:”+url);
错误回调(本);
}
open(“POST”,url,true);
var formData=新formData(formElem);
发送(formData);
}
////////////////////////////////////////////////////////////////////////////////
window.addEventListener('load',onDocLoaded,false);
函数onDocLoaded(evt)
{
byId('goBtn')。addEventListener('click',onGoBtn',false);
}
var curIter=0,maxIter=10;
功能onGoBtn(evt)
{
byId('numberIn')。值=curIter;
myAjaxPostForm('formAction.php',byId('mForm'),onAjaxDone);
函数名为jaxdone(ajax)
{
log(ajax.responseText);
curIter++;
if(库里特
2.FormAction.php
重新加载页面时,变量num被重新初始化为1。因此,这会造成页面刷新的无限循环。使用一些持久存储机制,如
localStorage
在页面刷新后保留变量值,以避免此问题

if(localStorage.getItem("num") == null || localStorage.getItem("num") == 'null'){
    localStorage.setItem("num", 1);
    num=Number(localStorage.getItem("num"));
    while (num<1001){
      //debugger;
      document.getElementById('numberIn').value=num;
      console.log(num);
      document.forms[0].submit();
      num++;
    }
  }

当重新加载页面时,变量num被重新初始化为1。因此,这会造成页面刷新的无限循环。使用一些持久性存储机制,如
localStorage
,在页面刷新后保留变量值,以避免此问题

if(localStorage.getItem("num") == null || localStorage.getItem("num") == 'null'){
    localStorage.setItem("num", 1);
    num=Number(localStorage.getItem("num"));
    while (num<1001){
      //debugger;
      document.getElementById('numberIn').value=num;
      console.log(num);
      document.forms[0].submit();
      num++;
    }
  }
试试这个,用sess就行了