2016-07-26 61 views
0

我需要一个帮助。我正在创建多个文本区域,单选按钮字段,并通过单击加号按钮下拉列表。在我需要用户点击减号按钮时,最后所有3种类型的项目都应删除,但不会发生这种情况。我在下面解释我的代码。无法使用JavaScript/Jquery动态删除单选按钮输入字段

<input name="no_of_question" id="ques" class="form-control" placeholder="no of question" type="text"> 
<label>Questions</label> 
<input type="button" class="btn btn-success btn-sm" name="plus" id="plus" value="+" onClick="addQuestionField();"> 
<input type="button" class="btn btn-danger btn-sm" name="minus" id="minus" value="-" onClick="deleteQuestionField();"> 
<div id="container"> 
    <div class="row"> 
     <div class="col-md-3"> 
     <div class="form-group"> 
      <textarea class="form-control" name="questions0" id="questions0" placeholder="Questions" style="background:#FFFFFF;" rows="2"></textarea> 
     </div> 
     </div> 
     <div class="col-md-9"> 
     <div style="margin-top:37px;"> 
      <div style="float:left; margin-right:10px;"> 
      <input type="radio" name="answer_type0" id="answer_type0" onClick="selectScale(this.value,'0');"> 
      </div> 
      <div style="float:left; margin-top:-10px;display:none;" id="scaleid0"> 
      <select class="form-control" id="nscale0" name="noofscale0"> 
       <option value="">Select Answer Type</option> 
       <option value="1">Cuttuck</option> 
       <option value="1">BBSR</option> 
      </select> 
      </div> 
     </div> 
</div> 

的JavaScript代码在下面给出。

function addQuestionField(){ 
    var get =$("#ques").val(); 
    if(get===null || get===''){ 
     alert('Please add no of questions'); 
    }else{ 
     for(var i=1;i<get;i++){ 
     $('#container').append('<div class="row"><div class="col-md-3"><div class="form-group"><textarea class="form-control" name="questions'+ i +'" id="questions'+ i +'" placeholder="Questions" style="background:#FFFFFF;" rows="2"></textarea></div></div> <div class="col-md-9" ><div style="margin-top:37px;"><div style="float:left; margin-right:10px;"> <input type="radio" name="answer_type'+i+'" id="answer_type0" onClick="selectScale(this.value,'+i+');"></div><div style="float:left; margin-top:-10px;display:none;" id="scaleid'+i+'"><select class="form-control" id="nscale'+i+'" name="noofscale'+i+'"><option value="">Select Answer Type</option><?php foreach($feeddatascale as $v){ ?><option value="1" >Cuttuck</option><?php } ?></select></div><div style="clear:both;"></div></div></div><div>'); 
     } 
    } 
} 
function deleteQuestionField(){ 
    var get =$("#ques").val(); 
    var textareas = $('#container textarea'); 

    if (textareas.length !== 0) { 
    textareas.last().remove(); 

    $('#ques').val(textareas.length - 1); 
    } 
} 

这里,当我点击-按钮只有最后一个文本区域正在删除。但我需要删除相应的单选按钮和文本区域下拉列表(if exist)。这里总共有plunkr代码存在。请帮帮我。

+0

您可以检查我的plunkr代码输出。 – satya

回答

1

试试这个,请正确关闭你的div,我想你忘了把一个div关闭标签。

function deleteQuestionField(){ 
     var get =$("#ques").val(); 
     var textareas = $('#container').find('textarea'); 
     if (textareas.length !== 0) { 
     $('#container div.row:last-child').remove(); 

     $('#ques').val(textareas.length - 1); 
     } 
    } 
1

你可以删除最后一行其中您动态添加和包含文本区域,单选按钮和下拉列表。

function deleteQuestionField(){ 
    $("#container>row").last().remove();  
} 
0

这为我工作,

HTML:

<input name="no_of_question" id="ques" class="form-control" placeholder="no of question" type="text"> 
<label>Questions</label> 
<input type="button" class="btn btn-success btn-sm" name="plus" id="plus" value="+"> 
<input type="button" class="btn btn-danger btn-sm" name="minus" id="minus" value="-"> 
<div id="container"> 

</div> 

JS(jQuery的):

$(document).ready(function(){ 
$('#plus').click(function(){ 
    var get =$("#ques").val(); 
    if(get===null || get===''){ 
     alert('Please add no of questions'); 
    }else{ 
     for(var i=1;i<=get;i++){ 
     $('#container').append('<div class="row"> <div class="col-md-9" ><div style="margin-top:37px;"><div style="float:left; margin-right:10px;"> <input type="radio" name="answer_type'+i+'" id="answer_type0" onClick="selectScale(this.value,'+i+');"></div><div style="float:left; margin-top:-10px;display:none;" id="scaleid'+i+'"><select class="form-control" id="nscale'+i+'" name="noofscale'+i+'"><option value="">Select Answer Type</option><?php foreach($feeddatascale as $v){ ?><option value="1" >Cuttuck</option><?php } ?></select></div><div class="col-md-3"><div class="form-group"><textarea class="form-control" name="questions'+ i +'" id="questions'+ i +'" placeholder="Questions" style="background:#FFFFFF;" rows="2"></textarea></div></div><div style="clear:both;"></div></div></div><div>'); 
     } 
    } 
}); 
$('#minus').click(function(){ 
    var get =$("#ques").val(); 
    var textareas = $('#container textarea'); 
    var radiobtns = $('#container input'); 

    if (textareas.length !== 0) { 
     textareas.last().remove(); 
     radiobtns.last().remove(); 

    $('#ques').val(textareas.length - 1); 
    } 
}); 
}); 

jsfiddle

相关问题