JS не работает внутри модального режима после динамического изменения его идентификатора

0

Я использую 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>

Кто-нибудь может помочь?

  • 0
    Вы назвали ...modal('show') в procura-paciente.js ?
  • 0
    Нет, как мне сделать это правильно?
Показать ещё 4 комментария
Теги:

1 ответ

0

Когда модальное открытие, идентификатор изменяется, а модальный повторно нарисован. Но событие 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('');
    }
});
.....

});
  • 0
    Не работает, я не думаю, что идентификатор меняется, потому что он находится в цикле, он меняется только тогда, когда мы нажимаем кнопку, вызывающую модальное на следующей строке, вот полный код, чтобы вы могли понять, что происходит на всей картине. w3schools.com/code/tryit.asp?filename=FRE6QZB89CDZ
  • 0
    Измените все идентификаторы в модальном классе, идентификатор только один на странице.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню