Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Chiarimento su value in input

    ciao!

    vorrei un chiarimento se possibile sul settare via javascript valori dentro a una input text (e probabilmente più in generale dentro a elementi del dom).
    due esempi:
    codice:
    function whois() {
        var dom = document.getElementById('whois');
        if (dom.value.length !== 0) {
            $.ajax({
                type: "POST",
                dataType: "html",
                url: "",
                data: "dominio=" + dom.value,
                success: function (response) {
                    $('#ajax').html(response);
                    dom.value = ''; // IL VALORE DELLA INPUT NON VIENE RESETTATO
                }
            });
        }
    }
    secondo:
    codice:
    function whois() {
        var dom = document.getElementById('whois');
        if (dom.value.length !== 0) {
            $.ajax({
                type: "POST",
                dataType: "html",
                url: "",
                data: "dominio=" + dom.value,
                success: function (response) {
                    $('#ajax').html(response);
                    document.getElementById('whois').value = ''; // IL VALORE DELLA INPUT VIENE RESETTATO
                }
            });
        }
    }
    potete darmi una delucidazione per favore?

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, il solo script che hai postato non è sufficiente a chiarire dove risiede il problema.

    Teoricamente dovrebbe funzionare in entrambi i modi a meno che quell'elemento (a cui fa riferimento la variabile dom dichiarata inizialmente) non venga in qualche modo distrutto per essere poi ricreato successivamente alla chiamata ajax. Ad esempio, può essere così se l'elemento #whois risiede dentro l'elemento #ajax. In questo caso la variabile dom ha motivo di non funzionare perché perderebbe il riferimento all'istanza dell'elemento #whois iniziale non appena il contenuto dell'elemento #ajax viene "ripopolato", anche se al suo interno va a ripresentarsi un altro elemento con lo stesso id whois (sarebbe comunque l'istanza di un altro elemento differente da quello esistente in precedenza).

    Quindi la domanda è: non è che per caso l'elemento #whois sta dentro l'elemento #ajax?

    Diversamente, potresti postare la parte html riguardante questi elementi?

    Ad ogni modo, dal momento che stai utilizzando jQuery, perché non usare un selettore tipo $('#whois'), così come hai fatto per $('#ajax'), anziché usare document.getElementById('whois')? .. non ne vedo il senso.

    Esempio:
    codice:
    function whois() {
      var dom = $('#whois');
      if (dom.val() == "") {
        $.ajax({
          type: "POST",
          dataType: "html",
          url: "a.php",
          data: "dominio=" + dom.val(),
          success: function (response) {
            $('#ajax').html(response);
            dom.val(""); // OPPURE: $('#whois').val("");
          }
        });
      }
    }
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    ciao!

    ti posto l'html:
    codice:
    <div class="col-md-8 blog-main">
        <div class="row">
            <div class="page-header">
                <h2>IP Address: <?php echo $_SERVER['REMOTE_ADDR']; ?></h2>
            </div>
            <div class="page-header">
                <h2>Whois</h2>
            </div>
            <div class="form-group">
                <label for="whois">Cerca:</label>
                <input type="text" class="form-control" id="whois" placeholder="Cerca...">
            </div>
            <button type="button" class="btn btn-info btn-xlarge" onclick="whois();">Invia</button>
            <div id="ajax"></div>
        </div>
    </div>
    ti ho postato tutto il blocco della pagina!
    come il div ajax è a se stante.
    per quanto riguarda jquery / javascript, hai ragione ed in effeti così funziona tutto:
    codice:
    function whois() {
        $('#ajax').html('');
        var dom = $('#whois');
        if (dom.val() !== "") {
            $.ajax({
                type: "POST",
                dataType: "html",
                url: "a.php",
                data: "dominio=" + dom.val(),
                success: function (response) {
                    $('#ajax').html(response);
                    dom.val("");
                }
            });
        }
    }
    grazie!

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    il div ajax è a se stante
    Strano, in questo caso il problema che hai descritto non si sarebbe dovuto presentare.
    Ho testato la parte html assieme allo script iniziale (quello con dom.value = ''; dove hai indicato che non funziona) ma non noto quel problema. A me funziona regolarmente.

    A questo punto posso pensare a una qualche tua svista o un errore di digitazione o di sintassi, di cui magari non ti sei accorto, che faceva saltare quella riga.
    Nel caso volessi indagare più a fondo, sarebbe da capire se la variabile dom resta invariata quando avviene il success. Si può verificare con un semplice alert(dom).

    Tieni anche presente che quella riga viene eseguita solo al success della chiamata Ajax. Questo significa che se, per qualche motivo, non avvenisse il success, non vedresti nemmeno resettare quell'input.
    Ancora, se ci fosse un ritardo nella risposta Ajax, ci sarebbe un ritardo anche nel reset di quell'input. Questo, magari, potrebbe creare o aver creato confusione.

    Ad ogni modo, se hai risolto con jQuery, tanto meglio così, inutile penarsi ulteriormente.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Strano, in questo caso il problema che hai descritto non si sarebbe dovuto presentare.
    Ho testato la parte html assieme allo script iniziale (quello con dom.value = ''; dove hai indicato che non funziona) ma non noto quel problema. A me funziona regolarmente.

    A questo punto posso pensare a una qualche tua svista o un errore di digitazione o di sintassi, di cui magari non ti sei accorto, che faceva saltare quella riga.
    Nel caso volessi indagare più a fondo, sarebbe da capire se la variabile dom resta invariata quando avviene il success. Si può verificare con un semplice alert(dom).

    Tieni anche presente che quella riga viene eseguita solo al success della chiamata Ajax. Questo significa che se, per qualche motivo, non avvenisse il success, non vedresti nemmeno resettare quell'input.
    Ancora, se ci fosse un ritardo nella risposta Ajax, ci sarebbe un ritardo anche nel reset di quell'input. Questo, magari, potrebbe creare o aver creato confusione.

    Ad ogni modo, se hai risolto con jQuery, tanto meglio così, inutile penarsi ulteriormente.
    ciao!

    si mi piacerebbe approfondire in effetti, ma purtroppo ho poco tempo in questo momento.

    in caso vi farò sapere.
    nel frattempo ti ringrazio"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.