Я использую bootstrap modal, и я вызываю функцию автозаполнения внутри него, все работает хорошо, когда оно установлено так:
Кнопка, которая имеет цель передачи данных для вызова идентификатора модального:
data-target="#modalAdicao"
И div с идентификатором, установленным в соответствии с целью данных:
id="modalAdicao"
Но поскольку он вызвал внутри PHP foreach, и мне нужно сохранить информацию, я должен установить id модальности, как идентификатор строки mysql, с которой я имею дело, например:
data-target="#modalAdicao<?php echo htmlspecialchars($idModal); ?>"
А также:
id="modalAdicao<?php echo htmlspecialchars($idModal); ?>"
После этого информация сохраняется, но js перестает работать, как будто я ее никогда не называл, но она там, как всегда:
<script src="js/procura-paciente.js"></script>
Кто-нибудь может помочь?
Когда модальное открытие, идентификатор изменяется, а модальный повторно нарисован. Но событие js определено. Попытайтесь использовать это
$(document).on('input','.busca', limpaCampos);
Цикл for
генерирует много #busca
, id
уникален. Вместо этого измените использование class
. Например
php form
<form id="novoAgendamento" method="POST" action="include/novo_agendamento.php">
<div class="form-inline">
<div class="form-group">
<label for="busca" class="sr-only">Identidade</label>
<input type="text" id="busca" data-id="<?php echo htmlspecialchars($idModal); ?>" placeholder="Identidade" name="rgPaciente" class="mx-sm-69 form-control busca" required>
</div>
<div class="form-group">
<label for="nascimentoPaciente" class="sr-only">Nascimento</label>
<input type="text" id="nascimentoPaciente" placeholder="Nascimento" name="nascimentoPaciente" class="mx-sm-69 form-control" required>
</div>
</div>
<div class="form-group">
<label for="nomePaciente"></label>
<input type="hidden" name="nomePaciente" class="form-control nomePaciente">
<input type="hidden" name="cpfPaciente" class="form-control cpfPaciente">
<input type="hidden" name="horaPaciente" value="<?php echo htmlspecialchars($horarios[$i]); ?>" class="form-control horaPaciente">
<input type="hidden" name="dataPaciente" value="<?php echo htmlspecialchars($data_agendamento_convert); ?>" class="form-control dataPaciente">
<input type="hidden" name="medicoPaciente" value="<?php echo htmlspecialchars($medico_completo); ?>" class="form-control medicoPaciente">
<input type="text" placeholder="Nome do Paciente" class="form-control nomePaciente2" disabled="">
<label for="observacaoPaciente"></label>
<input type="text" name="observacaoPaciente" placeholder="Observação" class="form-control" required>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-secondary">Fechar</button>
<button type="submit" class="btn btn-primary">Agendar</button>
</div>
</form>
JS
$(function() {
$('#tableteste').on('input', '.busca', function(){
var busca = $(this).val();
var form = $(this).parents().eq(2);
if(busca == ""){
form.find('.nomePaciente').val('');
form.find('.nomePaciente2').val('');
form.find('.rgPaciente').val('');
form.find('.nascimentoPaciente').val('');
form.find('.cpfPaciente').val('');
}
});
.....
});
...modal('show')
вprocura-paciente.js
?