Я создаю массив переключателей, чтобы получить информацию о том, есть ли у пользователя определенная болезнь или нет.Для этого я создаю массив радиокнопок, в которых названия болезней хранятся в массиве и извлекаются для создания отдельных радиокнопок на основе их имен при каждом нажатии кнопок add .
HTML код:
<div>
<a href="javascript:void(0);" class="add_button" title="Add field"> <img style="padding-bottom: 15px;"
src="images/add_btn.png"></a>
</div>
Здесь я использую Javascript для создания кнопки-переключателя при нажатии add .И я также создаю скрытое текстовое поле вместе с элементами управления, которые при выборе Да в радиокнопке видны пользователю на экране.
Javascript для создания элементов управления
<script type="text/javascript">
$(document).ready(function(){
var values = new Array();
<?php foreach($value as $key => $val){ ?>
values.push('<?php echo $val; ?>');
<?php } ?>
var maxField = values.length; //Input fields increment limitation
var addButton = $('.add_button'); //Add button selector
var wrapper = $('.field_wrapper'); //Input field wrapper
var x = 0; //Initial field counter is 1
var fieldHTML = '<div class="field_wrapper"><div class="label-group"><div class="line"></div><label style="font-weight: 900;" id="labelid">Disease</label></div>
<div class="form-check form-check-inline"><input class="form-check-input" type="radio" name="Disease" id="inlineRadio1" value="Yes" onclick="javascript:yesnoCheck();"><label class="form-check-label radio-inline" for="inlineRadio1">Yes</label>  
<div id="ifYes" style="visibility:hidden; display:inline-block;"><input type="text" name="dvalue" id="dvalue" placeholder="Value" size="5" style="font-size:11px;"/></div></div><div class="form-check form-check-inline"><input class="form-check-input" type="radio" name="Disease" id="inlineRadio2" value="No" onclick="javascript:yesnoCheck();">     <label class="form-check-label" for="inlineRadio2">No</label>
</div><div class="line"></div></div>';
//Once add button is clicked
$(addButton).click(function(){
//Check maximum number of input fields
if(x < maxField){
var element=values[x];
$(wrapper).prepend(fieldHTML); //Add field html
document.getElementById("labelid").innerText = element;//label
document.getElementById("inlineRadio1").name = element;//yes radio
document.getElementById("inlineRadio2").name = element;//no radio
document.getElementById("dvalue").name = element;//textbox
x++;//Increment field counter
}
});
});
</script>
Javascript для управления видимостью текстового поля
<script type="text/javascript">
function yesnoCheck()
{
if (document.getElementById('inlineRadio1').checked)
{
document.getElementById('ifYes').style.visibility = 'visible';
}
else
{
document.getElementById('ifYes').style.visibility = 'hidden';
}
}
</script>
Теперь проблема, с которой я сталкиваюсь, заключается в видимости.Когда я впервые создаю один набор элементов управления, видимость работает нормально, как на изображении.
Но когда я создаю другой набор средств управления, я не могу изменить видимость ранее созданных элементов управления.
Здесь яЯ выбрал переключатель "Да" для диабета, но текстовое поле все еще скрыто.
Пожалуйста, предоставьте мне решение.Заранее спасибо.