如何在此代码中清除此问题

时间:2016-12-12 17:08:48

标签: javascript jquery json

在这里,我选择Apartment,Villament,Row House,根据我的要求多选不需要再制作一个阵列,怎么能这样做,我就是这样搭,但是如果有的话,我无法得到确切的答案知道意味着告诉我



function createJSON() {
    jsonObj = [];
	 jsonObj12 = [];
    $("input[class=email]").each(function() {
        var email = $(this).val();
		var items = [];
		$('.Check1:checked').each(function(){
			items.push($(this).val()); 
				
			});
        item = {}
        item ["email"] = email;
		
		jsonObj12.push(items);
		item ["multiselect"]=jsonObj12;
		

        jsonObj.push(item);
    });

    console.log(jsonObj);
}

// Geting aswer like this
Array[1]
0:Object
email:"a@gmail.com"
multiselect:Array[1]
0:Array[3]0:"Office Space"
1:"Apartment"
2:"Villament"

// Requirement aswer like this 
Array[1]
0:Object
email:"a@gmail.com"
multiselect:Array[3]
0:"Office Space"
1:"Apartment"
2:"Villament"

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

Email<input title="Title1" type="text" class="email" >
<!--<input title="Title2" type="text" class="email">
<input title="Title3" type="text" class="email">-->



<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Office Space"> Office Space								
	</li>
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Apartment"> Apartment								
	</li>
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Villament"> Villament								
	</li>
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Individual House"> Individual House							
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Row House"> Row House
</div>

<input type="button" id="btn-submit" value="submit" onClick="createJSON()">
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您需要获取所有“多选”值,然后将其直接分配给最终结果中的对象键:

function createJSON() {
   result = [];
    $("input[class=email]").each(function() {
        var email = $(this).val();
        var text = $(this).siblings('input.text').val();
		var items = [];
		$('.Check1:checked').each(function(){
			items.push($(this).val()); 
			});
      result.push({email: email, text: text, multiselect: items})
    });
    console.log(result);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

Email<input title="Title1" type="text" class="email" >
<!--<input title="Title2" type="text" class="email">
<input title="Title3" type="text" class="email">-->
Text <input title="Text1" type="text" class="text" placeholder ="Text 1">


<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Office Space"> Office Space								
	</li>
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Apartment"> Apartment								
	</li>
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Villament"> Villament								
	</li>
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Individual House"> Individual House							
</div>

<div class="col-md-4" style="padding-left: 4px; padding-right: 4px;">
	<li style="color: #333; font-size: 85%;">
	<input type="checkbox" class="Check1" name="listing_type[]" value="Row House"> Row House
</div>

<input type="button" id="btn-submit" value="submit" onClick="createJSON()">