come caricare la variabile di script java nella casella di testo del modello bootstrap come valore


13

Ho qualche problema nel caricamento variabile javascript nella casella di input del modello 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">&times;</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 avvisa il valore corretto qui. Ma questo valore non viene caricato nella casella di testo del modello bootstrap. Qual è il mio errore? Come lo aggiusto? (L'unico problema è passare il valore JavaScript non caricare all'interno del campo di testo. Può stampare come HTML fuori nel tag div)

Aggiornamento che ho usato seguendo 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" />

Prova la funzione setText ()
Ahamed Safnaj,

non funziona, fratello. Penso che il problema sia qualcos'altro
Codice Kris,

penso che non hai collegato il file JS. scrivi una funzione di avviso e assicurati di averla collegata ..
Ahamed Safnaj,

alert (data.value); mostra il valore corretto
Codice Kris,

1
uso l'ultimo cdn "sweetalert"
Codice Kris del

Risposte:


5

il tuo codice pubblicato è un po 'carente e presenta alcuni errori, comunque ho provato a replicare il tuo problema e penso che potrei averlo fatto funzionare. Dai un'occhiata al frammento di jsfiddle di seguito e vedi se riesci a implementarlo nel tuo codice per farlo funzionare.

CONTROLLA QUESTO LINK: https://jsfiddle.net/b1nary/je60gxv8/2/

AGGIORNATO CON IL TUO SWEETALERT: https://jsfiddle.net/b1nary/je60gxv8/11/

setTimeout(function() {
    swal({
    title: "OverTime Status!",
    text: "You Need to get Sub OT Approval " + data_val + " Hours to Time allocate",
    type: "warning",
    showCancelButton: true,
    confirmButtonText: "Yes, do it",
    closeOnConfirm: false,
    html: false
  }, function(){
    swal("Deleted!",
    "Poof! Your number has been added to input box!",
    "success");
    $('#hours_work').val(data_val); 
    $('#overtime_requset').modal('show');
    //clear fields    
  });

}, 1000 );

ho usato il dolce avviso per bootstrap.not sweetalert
Codice Kris



sopra due cdn per ricevere avvisi
Codice Kris

se riesci a caricare il valore nella casella di testo accetterò la tua risposta come corretta. In ogni caso grazie mille per il tuo prezioso contributo
Codice Kris

3

Prova questo. Penso che function(isConfirm)sia un problema.

È necessario utilizzare la funzione then ()

    swal({
      title: "OverTime Status!",
      text: "You Need to get Sub OT Approval " + data.value + " Hours to Time allocate in the department",
      type: "warning",
      showCancelButton: false
    }).then(function (result) {
        $('#hours_work').val(data.value);
        $('#overtime_requset').modal('show'); 
    });

anche il modello non funziona in questo caso
Codice Kris

1

Per i campi di input del modulo è necessario utilizzare val()invece di text().

Esempio: $('#hours_work').val(data.value);


Btw. hai controllato il tuo codice? Nel codice che hai pubblicato sopra manca una doppia virgoletta (che termina la citazione per la classe), questo può forse essere il motivo del tuo problema. <input type="text" name="hours_work" id="hours_work" class="form-control value=""/>
CodyKL,

1

Controlla la sintassi HTML

vecchio

<input type="text" name="hours_work" id="hours_work"  class="form-control value=""/>

nuovo

<input type="text" name="hours_work" id="hours_work"  class="form-control" value=""/>

e controlla uno per uno

$('#hours_work').val(data.value);
$('#hours_work').text(data.value);

tutti sono provati fratello. non funziona. penso che il problema sia qualcos'altro
Codice Kris,

scrivi $ ('# hours_work'). val ('xyz'); nella console e verificare che funzioni o dare errori.
Arshad Shaikh,

prova con var textbox = document.getElementById ('hours_work'); textbox.value = 'xyz';
Arshad Shaikh,

anche la tua opzione 1 non stampa il valore
Codice Kris,

ehi, per favore scrivi questo javascript sotto bootstrap modale
Arshad Shaikh il

1

Il problema può essere risolto se si utilizzano semplicemente delegati. Come invece dell'uso diretto, $('#hours_work').val(data.value);provare con qualsiasi riferimento al genitore. del tuo documento come body. così $('#hours_work',$('body')).val(data.value);

Puoi usare qualsiasi riferimento genitore del tuo div modale. in cui viene inserito il codice modale anziché il corpo. div genitore di questo div.

È perché dom non è a conoscenza degli elementi del modello se viene caricato in modo dinamico.

Fammi sapere se ha funzionato


1

Stai affrontando questo problema perché stai cercando di aggiungere valore a un campo #hours_work, che non è stato ancora reso in DOM, poiché il $('#overtime_requset').modal('show');rendering dopo aver assegnato valore a $('#hours_work').val(data.value);e il campo di input fa parte del Modello, quindi devi solo aggiungere prima il modello e poi assegna valore al campo di input:

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) {

    $('#overtime_requset').modal('show');
    $('#hours_work').val(data.value);
   }
 });
 }, 1);

non è il caso, lo provo. non funziona
Codice Kris

Assicurati solo che la funzione 'clear_field ()' non cancelli il valore dell'input che hai assegnato.
Sarvesh Mahajan,

@ nipun258, se risolve il tuo problema, apprezza se puoi votare e contrassegnare la risposta, grazie
Sarvesh Mahajan

non si verificano ancora problemi. Dico che la funzione di campo chiaro funziona
Codice Kris

1

Ho lavorato sui tuoi requisiti e funziona per me, esegui il codice qui sotto come localmente:

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-sweetalert/1.0.1/sweetalert.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-sweetalert/1.0.1/sweetalert.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<script>
setTimeout(function() {
    var myArray = {id1: 100, id2: 200};

     swal({
      title: "OverTime Status!",
      text: "You Need to get Sub OT Approval "+ myArray.id1+ "  Hours to Time allocate in the department",
      type: "warning",
      confirmButtonText: "OK"

    },
    function(isConfirm) {
      if (isConfirm) {

        $('#hours_work').val(myArray.id1); //data.value alert the correct value in here.but this value not load in to the bootstrap model text box 
        $('#overtime_requset').modal('show');

      }
      else{
          console.log("test");
      }
    });
}, 1);
 </script>


    <div class="modal" id="overtime_requset">
  <div class="modal-dialog ">
    <form id="overtime_requset_form">
      <div class="modal-content">


        <div class="modal-header">
          <h4 class="modal-title">Sub OT Request</h4>
          <button type="button" class="close" data-dismiss="modal">&times;</button>
        </div>


        <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="" 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 </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 :   </br></label><br>
            <label class="text-secondary">Pendding OT hours :</label>
          </div>
        </div>

        <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>

1
grazie sorella. ma ho già risolto il mio problema
Codice Kris

@CodeKris Oh che bello! :)
Krishna Savani il

0

Si prega di scrivere questo javascript sotto bootstrap modale

<div class="modal" id="overtime_requset">
....
<script>
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').text(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);
</script>
</div>

0

Se hai definito l' dataoggetto JavaScript e la clear_fieldfunzione e, hai chiamato le librerie JQuery e Bootstrap. Non ci sarebbero problemi con il tuo codice.

Controlla questa pagina JSFiddle: https://jsfiddle.net/1x6t3ajp

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.