2012-09-24 68 views
3

我正在處理應用程序,但不會對用戶操作給出任何響應。當您提交表單時,您只會看到一個空白頁面。按鈕Anoniem inloggen也不起作用,兩者都是在javascript中創建的。這僅在使用Android 2.3或更低時纔會發生。我已經嘗試了很多解決方案,但目前爲止還沒有任何解決方案。即使已經提供的解決方案也不行。使用Jquery Mobile的Javascript不工作在Android 2.3及更低版本

鏈接到應用程序:​​。

這個應用程序的索引腳本是這樣的:

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

索引體:

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

而這裏的問題頁面(的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(); 
             }); 

}); 
}); 

和問題頁面(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> 

因此,簡而言之,welcome.php中實現的操作(如.click和.submit)在android 2.3或更低版本的index.html中不起作用。我們如何解決這些問題?

回答

1

試着改變你下面一行:

window.location = '#stats'; 

這一個:

window.location.href += '#stats'; 

UPDATE
如果你已經在位置加載一個錨鏈接(如#home)然後執行以下操作:

window.location.href = window.location.href.substr(0, window.location.href.lastIndexOf('#')) + '#stats'; 
+0

我曾嘗試過,但不幸的是這不起作用。在Javascript中創建的按鈕也不起作用。 – Simdo

+0

我已經用另一個可能的修復程序更新了我的答案,試試吧。 – Nelson

+0

我更新了我的問題與真正的錯誤。該錯誤不在window.location中,而是在用戶操作中。 Android 2.3及更低版本無用戶操作。 – Simdo

相關問題