Javascript 可复制复选框仅返回原始值,不返回重复值
嗨,这实际上是在另一个问题()中,有两个部分。第一部分由@epascarello解决-再次感谢,现在只剩下这一部分,我似乎不明白 我正在创建一个包含复选框的可复制div,在提交时,它只为控制台中的原始输入返回一个值,但对任何重复项都不返回值 非常感谢您的帮助 JS小提琴: jQuery:Javascript 可复制复选框仅返回原始值,不返回重复值,javascript,jquery,Javascript,Jquery,嗨,这实际上是在另一个问题()中,有两个部分。第一部分由@epascarello解决-再次感谢,现在只剩下这一部分,我似乎不明白 我正在创建一个包含复选框的可复制div,在提交时,它只为控制台中的原始输入返回一个值,但对任何重复项都不返回值 非常感谢您的帮助 JS小提琴: jQuery: //Clone Tracking var g_counter = 1; var d_counter = 1; var dependant = ["dependant"]; var group; //Clone
//Clone Tracking
var g_counter = 1;
var d_counter = 1;
var dependant = ["dependant"];
var group;
//Clone Tracking
//General Variables
var relation_input_groups = ["relation-group-1"];
//General Variables
//Generate variables
var relation_fields=[0];
var relation_input ="<label>Spouse</label>"+
"<input type='checkbox' value='spouse' class='relationship' name='relationship' />" +
"<label>own child</label>"+
"<input type='checkbox' value='ownchild' class='relationship' name='relationship' />" +
"<label>adopted</label>"+
"<input type='checkbox' value='adopted' class='relationship' name='relationship' />" +
"<label>stepchild</label>"+
"<input type='checkbox' value='stepchild' class='relationship' name='relationship' />" +
"<label>parent</label>"+
"<input type='checkbox' value='parent' class='relationship' name='relationship' />" +
"<label>inlaw</label>"+
"<input type='checkbox' value='inlaw' class='relationship' name='relationship' />" +
"<label>brother</label>"+
"<input type='checkbox' value='brother' class='relationship' name='relationship' />" +
"<label>other</label>"+
"<input type='checkbox' value='other' class='relationship' name='relationship' />";
//Generate variables
jQuery(document).ready(function(e) {
//populate jquery generated fields
jQuery(relation_fields).each(function() {
jQuery(relation_input).appendTo('#relation-group-1');
});
//populate jquery generated fields
//Cloning Function
jQuery('#clone').click(function() {
clone_dependant();
});
function clone_dependant() {
// Store the value of the previous Id to insert the cloned div..
var oldId = g_counter;
g_counter++;
currentdep ='dependant-'+g_counter;
// Clone the Dependant Div and set a new id
var $clonedDiv = jQuery('#dependant-1').clone(false).attr('id', 'dependant-'+g_counter);
var relation_newDiv = 'relation-group-'+ g_counter;
// Find div's inside the cloned object and set a new id's
$clonedDiv.find('#relation-group-1').attr('id',"relation-group-" + g_counter );
// You don't need to Loop thru the inputs to set the value
$clonedDiv.find('input').val('');
$clonedDiv.find('input:checkbox').removeAttr('checked');
// Insert the cloned object
$clonedDiv.insertAfter("#dependant-" + oldId);
relation_input_groups.push(relation_newDiv);
}
//Cloning Function
//Validation
//submit function
$(document).on("click", 'input[type="checkbox"]', function() {
jQuery(this).siblings(":checked").removeAttr('checked');
});
var result = {};
var dependants;
var dep_counter = 0;
jQuery('#submit').click(function(){
jQuery('.dependant').each(function(k, v){
dep_counter++
dependants = {};
result['dependant'+dep_counter] = [dependants];
dependants['relationship'] = $(v).find('.relationship:checked').val();
});
var jsonData = JSON.stringify(result);
console.log(jsonData);
});
});
//克隆跟踪
var g_计数器=1;
var d_计数器=1;
var从属=[“从属”];
var组;
//克隆跟踪
//一般变量
变量关系输入组=[“关系组-1”];
//一般变量
//生成变量
变量关系_字段=[0];
变量关系输入=“配偶”+
"" +
“亲生子女”+
"" +
“通过”+
"" +
“继子”+
"" +
“家长”+
"" +
“inlaw”+
"" +
“兄弟”+
"" +
“其他”+
"";
//生成变量
jQuery(文档).ready(函数(e){
//填充jquery生成的字段
jQuery(关系\字段).each(函数(){
jQuery(relationship_input).appendTo('#relationship-group-1');
});
//填充jquery生成的字段
//克隆功能
jQuery(“#克隆”)。单击(函数(){
克隆依赖性();
});
函数克隆依赖项(){
//存储上一个Id的值以插入克隆的div。。
var oldId=g_计数器;
g_计数器++;
currentdep='dependent-'+g_计数器;
//克隆从属Div并设置新id
var$clonedDiv=jQuery('dependent-1').clone(false).attr('id','dependent-'+g_计数器);
var relationship_newDiv='关系组-'+g_计数器;
//在克隆对象中查找div并设置新的id
$clonedDiv.find('#relation-group-1').attr('id',“relation-group-”+g_计数器);
//您不需要通过循环输入来设置值
$clonedDiv.find('input').val('');
$clonedDiv.find('input:checkbox').removeAttr('checked');
//插入克隆的对象
$clonedDiv.insertAfter(#依亲-“+oldId);
关系输入组推送(关系newDiv);
}
//克隆功能
//验证
//提交功能
$(文档)。在(“单击”,输入[type=“checkbox”]”,函数()上{
jQuery(this).this(“:checked”).removeAttr('checked');
});
var result={};
var依赖者;
var dep_计数器=0;
jQuery(“#提交”)。单击(函数(){
jQuery('.dependent')。每个(函数(k,v){
副柜台++
受抚养人={};
结果['dependent'+dep_counter]=[dependents];
依亲关系['relationship']=$(v).find('.relationship:checked').val();
});
var jsonData=JSON.stringify(结果);
console.log(jsonData);
});
});
以及HTML:
<div id="dependant-1" class="dependant">
<div id="label">relationship:</div> <div id="relation-group-1"></div>
</div>
<button id="clone">clone</button>
<button id="submit">submit</button>
关系:
克隆
提交
克隆的复选框没有分配任何值。确保在克隆时,在复选框的净集合中设置值克隆的复选框没有分配任何值。确保在克隆时在复选框的净集合中设置值,这仅仅是因为这些复选框具有相同的名称
属性。当按下submit按钮时,它会序列化所有表单控件(文本框、单选框、复选框等)的值并发送它们。name属性对于所有这些控件都应该是唯一的
在代码中,所有这些复选框都具有相同的
名称
属性(关系),这使得它们无法区分。解决此问题的方法是为这些复选框指定不同的名称。这只是因为这些复选框具有相同的名称属性。当按下submit按钮时,它会序列化所有表单控件(文本框、单选框、复选框等)的值并发送它们。name属性对于所有这些控件都应该是唯一的
在代码中,所有这些复选框都具有相同的名称
属性(关系),这使得它们无法区分。解决此问题的方法是为这些复选框指定不同的名称。请参阅此更新的小提琴:
注释此行:$clonedDiv.find('input').val('')代码>
同时设置dep_计数器=0代码>在提交按钮上单击..查看此更新的小提琴:
注释此行:$clonedDiv.find('input').val('')代码>
同时设置dep_计数器=0代码>在submit
按钮上单击..此注释“//您不需要通过循环输入来设置值”是问题的根源。事实上,是的,你知道。您在这里将它们设置为空$clonedDiv.find('input').val('';此注释“//您不需要通过循环输入来设置值”是问题的根源。事实上,是的,你知道。您在这里将它们设置为空$clonedDiv.find('input').val('';嘿,我不知道这是否合适,但你的答案通常都很精彩,你能看看这个吗:嘿,我不知道这是否合适,但你的答案通常都很精彩,你能看看这个吗: