Eu tenho algum problema no carregamento variável de javascript na caixa de entrada do modelo de auto-inicialização:
setTimeout(function() {
swal({
title: "OverTime Status!",
text: "You Need to get Sub OT Approval " + data.value + " Hours to Time allocate in the department",
type: "warning",
confirmButtonText: "OK"
},
function(isConfirm) {
if (isConfirm) {
$('#hours_work').val(data.value); //data.value alert the correct value in here.but this value not load in to the bootstrap model text box
$('#overtime_requset').modal('show');
clear_field();
}
});
}, 1);
<div class="modal" id="overtime_requset">
<div class="modal-dialog ">
<form id="overtime_requset_form">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Sub OT Request</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<!-- Modal body -->
<div class="modal-body">
<div class="form-group">
<div class="input-daterange">
<input type="text" name="from_date" id="from_date" class="form-control" value="<?php echo $_GET[" month "]; ?>" readonly />
<span id="error_from_date" class="text-danger"></span>
<span id="error_future_from_date" class="text-danger text-center"></span>
</div>
</div>
<div class="form-group">
<label class="text-info">Tolal Number Of Employee <?php echo get_total_employee_count($connect,$_SESSION["dept_Id"])?></br>
<label>Add the addition number of OT hours requried</lable>
<input type="text" name="hours_work" id="hours_work" class="form-control" value=""/>
<label class="text-secondary">Approved OT hours : <?php echo GetApprovedOt($connect,$_SESSION["dept_Id"],$currentMonth)?></br></label><br>
<label class="text-secondary">Pendding OT hours : <?php echo GetPendingOt($connect,$_SESSION["dept_Id"],$currentMonth)?></label>
</div>
</div>
<!-- Modal footer -->
<div class="modal-footer">
<button type="button" name="get_approval" id="get_approval" class="btn btn-info btn-sm">Get Approval</button>
<button type="button" class="btn btn-danger btn-sm" data-dismiss="modal">Close</button>
</div>
</div>
</form>
</div>
</div>
data.value alerta o valor correto aqui. Mas esse valor não é carregado na caixa de texto do modelo de auto-inicialização. Qual é o meu erro? Como faço para corrigir isso? (o único problema é passar o valor do JavaScript não carregar no lado de dentro do campo de texto. Ele pode imprimir como HTML na tag div)
Atualização que usei após o cdn sweetAlert boostrap
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-sweetalert/1.0.1/sweetalert.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-sweetalert/1.0.1/sweetalert.min.css" />
javascript
php
input
bootstrap-modal
sweetalert
Code Kris
fonte
fonte
Respostas:
seu código postado está faltando um pouco e tem alguns erros. Enfim, tentei replicar seu problema e acho que posso ter conseguido fazê-lo funcionar. Dê uma olhada no snippet jsfiddle abaixo e veja se você pode implementar em seu código para fazê-lo funcionar.
Confira este link primeiro: https://jsfiddle.net/b1nary/je60gxv8/2/
ATUALIZADO COM O SEU SWEETALERT: https://jsfiddle.net/b1nary/je60gxv8/11/
fonte
Tente isso. Eu acho que
function(isConfirm)
é problema.fonte
Para campos de entrada de formulário, você precisa usar em
val()
vez detext()
.Exemplo:
$('#hours_work').val(data.value);
fonte
<input type="text" name="hours_work" id="hours_work" class="form-control value=""/>
Verifique sua sintaxe html
velho
Novo
e verifique com um por um
fonte
Seu problema pode ser resolvido se você simplesmente usar delegados. Como em vez de uso direto,
$('#hours_work').val(data.value);
tente com qualquer referência pai. do seu documento como corpo. tão$('#hours_work',$('body')).val(data.value);
Você pode usar qualquer referência pai de sua div modal. em que seu código modal é colocado em vez do corpo. div principal desta div.
É porque seu dom não está ciente dos elementos do seu modelo se estiver carregado dinamicamente.
Deixe-me saber se funcionou
fonte
Você está enfrentando esse problema porque está tentando agregar valor a um campo
#hours_work
que ainda não foi renderizado no DOM, como$('#overtime_requset').modal('show');
é renderizado após a atribuição de valor$('#hours_work').val(data.value);
e o campo de entrada fazer parte do Model, portanto, basta adicionar o modelo primeiro e depois atribua valor ao campo de entrada:fonte
Eu trabalhei nos Seus Requisitos e está trabalhando para mim, execute o código abaixo localmente:
fonte
Por favor, escreva este javascript em modal de inicialização
fonte
Se você definiu o
data
objeto JavaScript e aclear_field
função e chamou as bibliotecas JQuery e Bootstrap. Não haveria problemas com seu código.Verifique esta página do JSFiddle: https://jsfiddle.net/1x6t3ajp
fonte