我正在尝试为每个问题制作一个带有一些选项的问题库
I am trying to make a question bank with some options for each question
我正在做一个题库来存储问题。每道题都有一些选项,有的有正确的有的有错误的选项。
但问题是我制作的选项文本工作正常,但我通过单选按钮制作的选项状态 (Correct/Wrong) 无法正常工作。当我再添加一个选项时,单选按钮无法正常工作。
我没有找到我做错的地方。基本上我将两者都作为数组类型,所以我循环它并获取所有值。
我的代码片段
removeThis();
$('#addMoreButton').on('click',function() {
$('#addMoreHere').append('<div class="col-12 m-4 removeThis"><div class="form-group row text-left"><div class="form-group col-md-6"> <label for="questionOptionText">Option Text <span class="text-danger">*</span></label> <div class="input-group"><input type="text" class="form-control" id="questionOptionText" name="questionOptionText[]" required placeholder="Enter Option Text ex: xyz"></div> <span id="questionOptionText_error" class="removemsg text-danger"></span> </div> <div class="form-group col-md-4"> <label for="questionOptionStatus">Option Status <span class="text-danger">*</span></label><div class="input-group"> <!-- 1 = Correct --> <div class="custom-control custom-radio"> <input type="radio" class="custom-control-input" id="questionOptionShow" name="questionOptionStatus[]" required value="1"> <label class="custom-control-label" for="questionOptionShow">Correct</label> </div> <!-- 0 = Wrong --> <div class="custom-control custom-radio"><input type="radio" class="custom-control-input" id="questionOptionHide" name="questionOptionStatus" required value="0" checked> <label class="custom-control-label" for="questionOptionHide">Wrong</label> </div> </div> <span id="questionOptionStatus_error" class="removemsg text-danger"></span> </div> <div class="col-md-2 add_col" style="margin-top: 35px;"><button type="button" data-toggle="tooltip" title="Remove This" class="btn btn-danger removeDiv" id="removeMoreButton"><b>-</b></button></div></div></div>');
removeThis();
});
function removeThis() {
$('.removeDiv').on('click',function() {
$(this).parents('div.removeThis').remove();
});
}
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" />
<div class="row">
<div class="col-12 m-4">
<div class="form-group row text-left">
<div class="form-group col-md-6">
<label for="questionOptionText">Option Text <span class="text-danger">*</span></label>
<div class="input-group">
<input type="text" class="form-control" id="questionOptionText" name="questionOptionText[]" required placeholder="Enter Option Text ex: xyz">
</div>
<span id="questionOptionText_error" class="removemsg text-danger"></span>
</div>
<div class="form-group col-md-4">
<label for="questionOptionStatus">Option Status <span class="text-danger">*</span></label>
<div class="input-group">
<!-- 1 = Correct -->
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="questionOptionShow" name="questionOptionStatus[]" required value="1">
<label class="custom-control-label" for="questionOptionShow">Correct</label>
</div>
<!-- 0 = Wrong -->
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="questionOptionHide" name="questionOptionStatus[]" required value="0" checked>
<label class="custom-control-label" for="questionOptionHide">Wrong</label>
</div>
</div>
</div>
<div class="col-md-2 add_col" style="margin-top: 35px;">
<button type="button" title="Add More" class="btn btn-primary" id="addMoreButton"><b>+</b></button>
</div>
</div>
</div>
<div class="clearfix"></div>
<div id="addMoreHere"></div>
</div>
您添加的每个选项都使用相同的 ID 和名称,因此会变得混乱。
您需要'append'一个动态结果,而不是每次都使用相同的代码。
所以,不是一个完整的例子,但是:
var number = 0; //for adding to IDs and names to make unique
$('#addMoreButton').on('click',function() {
number++; //adds one so even if deleted a value, the number will still be unique
var optionText = $('#questionOptionText').val(); //store the value
$('#addMoreHere').append('<div><div class="form-group row text-left"><div class="form-group col-md-6"> <label for="questionOptionText' + number + '">Option Text <span class="text-danger">*</span></label> <div class="input-group"><input type="text" class="form-control" id="questionOptionText' + number + '" name="questionOptionText[' + number + ']" required value="' + optionText + '"></div></div>');
});
我正在做一个题库来存储问题。每道题都有一些选项,有的有正确的有的有错误的选项。
但问题是我制作的选项文本工作正常,但我通过单选按钮制作的选项状态 (Correct/Wrong) 无法正常工作。当我再添加一个选项时,单选按钮无法正常工作。
我没有找到我做错的地方。基本上我将两者都作为数组类型,所以我循环它并获取所有值。
我的代码片段
removeThis();
$('#addMoreButton').on('click',function() {
$('#addMoreHere').append('<div class="col-12 m-4 removeThis"><div class="form-group row text-left"><div class="form-group col-md-6"> <label for="questionOptionText">Option Text <span class="text-danger">*</span></label> <div class="input-group"><input type="text" class="form-control" id="questionOptionText" name="questionOptionText[]" required placeholder="Enter Option Text ex: xyz"></div> <span id="questionOptionText_error" class="removemsg text-danger"></span> </div> <div class="form-group col-md-4"> <label for="questionOptionStatus">Option Status <span class="text-danger">*</span></label><div class="input-group"> <!-- 1 = Correct --> <div class="custom-control custom-radio"> <input type="radio" class="custom-control-input" id="questionOptionShow" name="questionOptionStatus[]" required value="1"> <label class="custom-control-label" for="questionOptionShow">Correct</label> </div> <!-- 0 = Wrong --> <div class="custom-control custom-radio"><input type="radio" class="custom-control-input" id="questionOptionHide" name="questionOptionStatus" required value="0" checked> <label class="custom-control-label" for="questionOptionHide">Wrong</label> </div> </div> <span id="questionOptionStatus_error" class="removemsg text-danger"></span> </div> <div class="col-md-2 add_col" style="margin-top: 35px;"><button type="button" data-toggle="tooltip" title="Remove This" class="btn btn-danger removeDiv" id="removeMoreButton"><b>-</b></button></div></div></div>');
removeThis();
});
function removeThis() {
$('.removeDiv').on('click',function() {
$(this).parents('div.removeThis').remove();
});
}
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" />
<div class="row">
<div class="col-12 m-4">
<div class="form-group row text-left">
<div class="form-group col-md-6">
<label for="questionOptionText">Option Text <span class="text-danger">*</span></label>
<div class="input-group">
<input type="text" class="form-control" id="questionOptionText" name="questionOptionText[]" required placeholder="Enter Option Text ex: xyz">
</div>
<span id="questionOptionText_error" class="removemsg text-danger"></span>
</div>
<div class="form-group col-md-4">
<label for="questionOptionStatus">Option Status <span class="text-danger">*</span></label>
<div class="input-group">
<!-- 1 = Correct -->
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="questionOptionShow" name="questionOptionStatus[]" required value="1">
<label class="custom-control-label" for="questionOptionShow">Correct</label>
</div>
<!-- 0 = Wrong -->
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="questionOptionHide" name="questionOptionStatus[]" required value="0" checked>
<label class="custom-control-label" for="questionOptionHide">Wrong</label>
</div>
</div>
</div>
<div class="col-md-2 add_col" style="margin-top: 35px;">
<button type="button" title="Add More" class="btn btn-primary" id="addMoreButton"><b>+</b></button>
</div>
</div>
</div>
<div class="clearfix"></div>
<div id="addMoreHere"></div>
</div>
您添加的每个选项都使用相同的 ID 和名称,因此会变得混乱。
您需要'append'一个动态结果,而不是每次都使用相同的代码。
所以,不是一个完整的例子,但是:
var number = 0; //for adding to IDs and names to make unique
$('#addMoreButton').on('click',function() {
number++; //adds one so even if deleted a value, the number will still be unique
var optionText = $('#questionOptionText').val(); //store the value
$('#addMoreHere').append('<div><div class="form-group row text-left"><div class="form-group col-md-6"> <label for="questionOptionText' + number + '">Option Text <span class="text-danger">*</span></label> <div class="input-group"><input type="text" class="form-control" id="questionOptionText' + number + '" name="questionOptionText[' + number + ']" required value="' + optionText + '"></div></div>');
});