Domanda

Saluti,

Ho il seguente codice jQuery Mobile:

<div data-role="content">
  A confirmation code has been sent to your mobile phone via SMS
  <br><br>
  To proceed, please enter the 3-digit confirmation code below:
  <br>
  <input id="verifySMS_code" type="text"  /><br>
  <a id="verifySMS_submit" href="#" data-role="button">Submit</a>
</div>

Ecco il mio javascript:

$(document).ready(function(){
  $("#verifySMS_submit").live("click",function() {
    alert('hi');
    var code=$('input#verifySMS_code').val();
    alert(code);
  });
});

'ciao' appare nella prima finestra di avviso, tuttavia '' compare nella seconda finestra di avviso - cioè completamente vuote !!!

Ho provato document.getElementById ( 'verifySMS_code') anche senza alcun risultato.

jQuery Ho anche provato 1.0a3pre cellulare

Questo è un problema veramente grave per me e non ho idea di come risolvere il problema.

Spero che qualcuno possa aiutare.

Grazie in anticipo,

È stato utile?

Soluzione

  1. Installa Firebug

  2. Prova con

<input id="verifySMS_code" type="text" value="someoldvalue" />

e

$(document).ready(function(){
  $("#verifySMS_submit").bind("submit",function() {
    console.log($('#verifySMS_code'));
    var code=$('#verifySMS_code').val();
    console.log(code);
  });
});

Questo è il motivo per cui:

  • il value= nell'input mostrerà se si tratta di un problema di ottenere il valore o con la messa che cosa si entra nell'elemento di ingresso (mobile jquery costruisce qualcosa sull'ingresso)
  • Non sarà generare nuovi pulsanti corrispondenti "#verifySMS_submit" submit quindi non è necessario live() ci
  • Prova con click e con inviare. Suppongo jQuery Mobile sta mettendo testo dal controllo di input al stesso ingresso in alcuni certi momenti come evento blur sull'ingresso, in modo che succede quando si fa clic su qualcosa altrimenti, non prima che
  • console.log($('input#verifySMS_code')); si aprirà il vostro elemento in console. se array vuoto apre - non c'era tale elemento ed è un selettore problema.

Prova per ingressi con ID duplicati.

Questa mostra tutti i IDS: $('input').each(function(){console.log($(this).attr('id'));}); Eseguirlo in Firebug e sarà anche il punto di DOM in modo da poter fare clic e trovarli nella scheda HTML.

Altri suggerimenti

Ho avuto lo stesso problema. In qualche modo, sembra che jQuery Mobile non gestisce bene la sintassi ("#someId")

Al contrario, facendo ("input[id=verifySMS_code]").val() dovrebbe aiutare

Se avete ottenere duplicati di ID (dopo il caricamento della pagina o utilizzando changePage() ecc), poi provare ad accedere i figli dell'oggetto pagina attiva ... Ex.

var myval = $('form#src #search').val(); // returns incorrect (:first) value of the element   

sostituirli con

var myval = $.mobile.activePage.find('form#src #search').val(); 

In ogni caso, ha lavorato mi formare:)

Ho avuto lo stesso problema su una pagina particolare. Poi ho capito che avevo un po 'di codice che stava chiamando un changePage() alla stessa pagina, duplicando così l'elemento DOM e il suo id.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top