使用javascript或appscript唯一地添加/删除动态文本框
我得到了这段代码,从中我修改了一点,为输入添加了唯一的数字使用javascript或appscript唯一地添加/删除动态文本框,javascript,html,dynamic,google-apps-script,textbox,Javascript,Html,Dynamic,Google Apps Script,Textbox,我得到了这段代码,从中我修改了一点,为输入添加了唯一的数字 var i=1; 函数addkid(){ i++; var div=document.createElement('div'); var id=i; div.innerHTML='Child_'+id+':'+'''+''; document.getElementById('kids').appendChild(div); } 功能组(分区){ document.getElementById('kids').removeChild(d
var i=1;
函数addkid(){
i++;
var div=document.createElement('div');
var id=i;
div.innerHTML='Child_'+id+':'+'''+'';
document.getElementById('kids').appendChild(div);
}
功能组(分区){
document.getElementById('kids').removeChild(div.parentNode);
我--;
}
姓名:
儿童1:
电话:
document.queryselectoral('#kids input[type=text]')[document.queryselectoral('#kids input[type=text]').length-1].name.split('#kids input[type=text]')来监视添加到div#kids
中的最后一个孩子的名字,而不是监视i
capturesponse
的函数将动态迭代添加的child并返回一个JSONObject。您可以在函数的submit上调用此函数3.您可以点击对Appscript的GET或POST请求,并在Appscript中获取数据以进行处理如果跳过id号不是问题,您可以从
remkid()
中删除i--
。这将防止任何重复的ID。否则,您可以执行以下操作:
var i=1;
var removedkids=[];
函数addkid(){
如果(removedkids.length>0){
newid=removedkids.shift();
}否则{
newid=i;
i++;
}
}
函数removeKid(id){
removedkids=removedkids.push(id.sort();
}
问题1:此代码应注意为您的文本框提供唯一的id,而不会在id号中留下任何空白。我通过使用一个函数getID来实现这一点,该函数跟踪数组中可用的id。每当我们删除一个元素时,具有该索引的数组值就被设置为-1。我们使用indexOf搜索“-1”,并跟踪未使用的ID
var指数=[];
//数组以0开头,但id以0开头,因此推送一个伪值
指数推送(0);
//在索引1处推送1,因为已经创建了一个子元素
索引推送(1)
函数addkid(){
var div=document.createElement('div');
var id=getID();
//设置此属性id,以便我们可以使用id访问此元素
div.setAttribute(“id”、“div_u3;”+id);
div.innerHTML='Child_'+id+':'+'''+'';
//在remkid中传递此参数的内部,我们传递id号
document.getElementById('kids').appendChild(div);
}
函数remkid(id){
//使用id片段使用addkid中设置的唯一id获取div元素
试一试{
var-element=document.getElementById(“Div_216;”+id)
element.parentNode.removeChild(元素);
索引[id]=-1;
//id number=数组的索引,所以我们将其设置为-1以指示其为空
}
捕捉(错误){
警报(“id:Div_389;”+id)
警报(错误)
}
}
函数getID(){
var emptyIndex=指数.indexOf(-1);
如果(emptyIndex!=-1){
索引[空索引]=空索引
返回空索引
}否则{
emptyIndex=index.length
索引推送(emptyIndex)
返回空索引
}
}
姓名:
儿童1:
电话:
如果我添加了30个文本输入框,然后我继续删除一些输入框,比如2、5、9、16,那么我可以在下面添加这些框,并从31开始再次保持顺序吗?此代码将永远删除2、5、9、16,当你添加一个新的孩子时,计数器将从31开始。基本上,你的身份证号码不会是连续的,并且会有像1,3,4,6,7,8,10这样的中断-30@Mohd阿西姆·苏哈伊尔,但我能不能先填空,然后从31岁开始?@Jagannathan Alagurajan,但我能不能也填空,然后从31岁开始?这很有效!谢谢@jagannathan alagurajan。一个问题:现在jsondata只包含动态文本框值。还可以将其他静态控件的值包括在内吗?例如“姓名”、“电话”或日期字段?我不确定我是否理解您的问题,只要名称和电话值在表单标记内(此处的输入元素将发布到URL),就可以将其传递到应用程序脚本。我应该在“”中添加什么?指向已创建的Web应用程序的链接,正如您演示如何创建的一样?如果您使用的是我的示例,则action=“将您的应用程序脚本url放在此处”,method=“post”。要获取应用程序脚本url,请复制并通过script.google.com中的dopost函数并发布它。特别有趣的是您的getID函数。你能(有空时)详细说明一下,让我明白吗?