JQuery Mobile: .VAL () non funziona
-
11-10-2019 - |
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,
Soluzione
-
Installa Firebug
-
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.