Mam problem z ładowaniem zmiennych javascript do pola wprowadzania modelu bootstrap:
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 informuje tutaj o poprawnej wartości. Ale ta wartość nie ładuje się do pola tekstowego modelu bootstrap. Jaki jest mój błąd? Jak to naprawić? (jedynym problemem jest przekazanie wartości JavaScript, która nie ładuje się do pola tekstowego po stronie. Można go wydrukować jako HTML do znacznika div)
Aktualizacja, której użyłem, po aktualizacji CD-ROM SweetAlert
<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
źródło
źródło
Odpowiedzi:
twój opublikowany kod jest trochę brakuje i ma pewne błędy, w każdym razie próbowałem odtworzyć problem i myślę, że mogłem go uruchomić. Spójrz na poniższy fragment kodu jsfiddle i sprawdź, czy możesz go zaimplementować w kodzie, aby działał.
SPRAWDŹ PIERWSZE LINK: https://jsfiddle.net/b1nary/je60gxv8/2/
AKTUALIZACJA Z TWOIM SWEETALERT: https://jsfiddle.net/b1nary/je60gxv8/11/
źródło
Spróbuj tego. Myślę, że
function(isConfirm)
to problem.źródło
W przypadku pól wprowadzania formularza należy użyć
val()
zamiasttext()
.Przykład:
$('#hours_work').val(data.value);
źródło
<input type="text" name="hours_work" id="hours_work" class="form-control value=""/>
Sprawdź składnię HTML
stary
Nowy
i sprawdzaj jeden po drugim
źródło
Twój problem można rozwiązać, jeśli po prostu używasz delegatów. Jak zamiast bezpośredniego użycia,
$('#hours_work').val(data.value);
wypróbuj dowolne referencje rodziców. Twojego dokumentu, takiego jak treść. więc$('#hours_work',$('body')).val(data.value);
Możesz użyć dowolnego odniesienia nadrzędnego twojego div modalnego. w którym zamiast ciała umieszczany jest kod modalny. div div tego div.
To dlatego, że dom nie jest świadomy elementów modelu, jeśli jest dynamicznie ładowany.
Daj mi znać, jeśli zadziałało
źródło
Napotykasz ten problem, ponieważ próbujesz dodać wartość do pola
#hours_work
, które nie zostało jeszcze wyrenderowane w DOM, podobnie jak$('#overtime_requset').modal('show');
renderowanie po przypisaniu wartości$('#hours_work').val(data.value);
i pole wejściowe jest częścią Modelu, więc po prostu musisz najpierw dodać model, a następnie przypisz wartość do pola wejściowego:źródło
Pracowałem nad Twoimi wymaganiami i pracuję dla mnie, uruchom poniżej kodu jako lokalnie:
źródło
Napisz ten skrypt javascript w części modalnej bootstrap
źródło
Jeśli zdefiniowałeś
data
obiekt JavaScript iclear_field
funkcję oraz nazwałeś biblioteki JQuery i Bootstrap. Twój kod nie będzie problemów.Sprawdź tę stronę JSFiddle: https://jsfiddle.net/1x6t3ajp
źródło