将javascript输入循环到html表单
我正在使用javascript以表单的形式将文本输入到我的网页中。我在测试中使用数字,从1开始,递增1到1000将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。您创建
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就行了