Javascript con Jquery Mobile no funciona en Android 2.3 e inferior
Estoy trabajando en una aplicación, pero no dará respuesta a las acciones de los usuarios. Cuando envías el formulario solo obtienes una página vacía. El botón Anoniem inloggen tampoco funciona, ambos se crean en javascript. Esto solo ocurre cuando se usaAndroid 2.3 o bajo. He intentado muchas soluciones, pero ninguna ha funcionado hasta ahora. Incluso las soluciones ya dadas no funcionarán.
Enlace a la aplicación:http://goo.gl/MsZfO.
El script de índice de esta aplicación se ve así:
<script type="text/javascript">
$(document).ready(function($) {
checkMail();
$.post('stats.php',
function (data, textStatus) {
$('#stats').empty();
$('#stats').append(data).page();
$('#stats').page('destroy').page();
});
$.post('welcome.php',
function (data, textStatus) {
$('#mail').empty();
$('#mail').append(data).page();
$('#mail').page('destroy').page();
});
function checkMail() {
var item = localStorage.getItem('maillogin');
if (item !== null) {
window.location = '#stats';
}
else{
window.location = '#mail';
}
}
});
</script>
El cuerpo índice:
<div data-role="page" data-theme="a" id="mail" data-transition="none">
</div>
<div data-role="page" data-theme="a" id="stats" data-transition="none">
</div>
Y aquí está el script de la página del problema (welcome.php):
$(document).ready(function($) {
$('#mailform').submit(function () {
$.mobile.showPageLoadingMsg();
var email = document.getElementById('email');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
$.mobile.changePage("#mail");
alert('Dit is geen geldig mailadres');
$.mobile.hidePageLoadingMsg();
return false
}
else{
if($('#checkbox').attr('checked')) {
$.post('mailinsert.php',
$('#mailform').serialize())
localStorage.setItem('maillogin', $('#email').val());
$('#inlogmail').empty();
$('#inlogmail').append(localStorage.getItem('maillogin')).trigger('create');
$.post('stats.php',
function (data, textStatus) {
$('#stats').empty();
$('#stats').append(data).page();
$('#stats').page('destroy').page();
$.mobile.changePage("#stats");
$.mobile.hidePageLoadingMsg();
});
}
else{ $.mobile.changePage("#mail");
alert('De voorwaarden zijn niet geaccepteerd');
$.mobile.hidePageLoadingMsg();
return false;
}
}
});
$('#skipright').click(function(){
localStorage.setItem('maillogin', 'anoniem');
$.post('stats.php',
function (data, textStatus) {
$('#stats').empty();
$('#stats').append(data).page();
$('#stats').page('destroy').page();
$.mobile.changePage("#stats");
$.mobile.hidePageLoadingMsg();
});
});
});
Y el cuerpo de la página de problemas (welcome.php):
<form id="mailform">
<div data-role="fieldcontain">
<label for="email">E-mail:</label>
<input name="email" id="email" type="text" />
<br />
<div class="ui-grid-b ui-corner-all ui-shadow ui-bar ui-bar-b">
<input type="checkbox" name="checkbox" id="checkbox" data-role="none"/>
<label for="checkbox">Ja, ik accepteer de voorwaarden</label>
</div></br>
<input type="submit" value="Stemmen maar!"/>
</div>
</form>
<h3><a class="skipright" id="skipright">Anoniem inloggen</a></h3>
</div>
Así que en resumen, las acciones implementadas desde welcome.php como .click y .submit no funcionarán en index.html en Android 2.3 o inferior. ¿Cómo podemos arreglar esto?