2013-11-27 25 views
2

我在HTML5和PhoneGap中工作。目前正面臨一個問題;我無法處理Android softkeyboad的GO按鈕。 我的功能是,我有一個登錄按鈕,當我輸入密碼並點擊鍵盤上的GO按鈕時,它將在我的頁面中處理提交按鈕的相同功能。像在屏幕快照enter image description here使用手機話柄處理android go按鈕

有沒有解決方案?嘗試像我最近的代碼事件正在工作,但jQuery的AJAX調用不起作用。 :(

.. HTML代碼..

<div data-role="page" id="page_login"> 
    <div data-role="header" id="header_login"> 
    <img src="images/loginheaderlogo.png" id="login_header_logo"><br/> 
    <img src="images/loginheaderarrow.png" id="login_header_arrow"> 
    </div> 
    <div data-role="content" id="content_login" class="max_width scrolling"> 
    <form onsubmit="userLogin()"> <!--form submit--> 
    <div id="login_textbox_container"> 
    <span class="valid" id="username_valid"></span> 
    <img src="images/loginusericon.png" id="login_text_icon"> 
    <label class="input"> 
    <span>Username</span> 
    <input type="text" id="input_usersername"> 
    </label> 
    </div> 
    <div id="login_textbox_container"><span class="valid" id="password_valid"></span> 
    <img src="images/loginpassicon.png" id="login_text_icon"> 
    <label class="input"> 
    <span>Password</span> 
    <input type="number" id="input_password"> 
    </label> 
    </div> 
    <div style="text-align:center; margin-top:37px"> 
    <div class="main_button" id="login_button"> 
    <div class="left"></div> 
    <div class="center">LOGIN</div> 
    <div class="right"></div> 
    </div> 
    <input type="submit" value="Login" id="btnSubmit" data-role="none"/>      
    </div> 
    </form> 
    </div> 
    </div>   

.. JS代碼..

$("#login_button").on('click', function(event) { 
    userLogin(); 
    }); 

.. AJAX調用..

function userLogin() { 
    var varData = 'username='+$('#input_usersername').val()+'&password='+$('#input_password').val(); 
var Validation_result = UserLogin_Validation() 
if(Validation_result == true) { 
$(".pre_loader").show(); 
setTimeout (function(){ 
$.ajax({ 
    type: "POST", 
    url: 'http://xxx.xx.net/authenticate.php', 
    data: varData, 
    dataType: "json", 
    crossDomain: true, 
    cache: false, 
    async: false, 
    success: function (data) { 
     userToken=data.token; 
     localStorage.removeItem("TOKEN"); 
     localStorage.setItem("TOKEN",userToken); 
     if(userToken!=0) 
     { 
      var query=[$('#input_usersername').val(),$('#input_password').val(),userToken,timeStamp]; 

      obj.insertLogin(query); 
     } 
     else 
     { 
      alert('Invalid User') 
      $(".pre_loader").hide(); 
     } 
    }, 
    error: OnError 
}); 
},1000);} 
    } 
+0

http://stackoverflow.com/questions/11394607/iphone-default-keyboard-go-button-action-not-working-with-phonegap – rynhe

回答

1

我假設'去'按鈕僅適用於提交forms

我沒有在您的html中看到一個表單。

<form onsubmit="userLogin()"> 
    <label>username</label> 
    <input type="text" name="username" /> 
    <label>password</label> 
    <input type="password" name="password" /> 
    <input type="submit" value= "submit">submit my form</form> 
</form> 

編輯

我有一個工作示例:http://jsbin.com/IgeHUdEz/edit 我有所剝去HTML,但請你應該如何使用標籤for屬性注意。

HTML

<div data-role="page" id="page_login"> 
    <form id="loginform" name="login"> <!--form submit--> 
     <label class="input" for="input_usersername"> 
      <span>Username</span> 
     </label> 
     <input type="text" id="input_usersername"> 
     <label class="input" for="input_password"> 
      <span>Password</span> 
     </label> 
     <input type="number" id="input_password"> 
     <div style="text-align:center; margin-top:37px"> 
      <div class="main_button" id="login_button"> 
       <input type="submit" value="Login" id="btnSubmit" data-role="none"/> 
      </div> 
     </div> 
    </form>     
</div> 

的Javascript

$("#loginform").on('submit', function(event) { 
    userLogin(); 
}); 

function userLogin() { 
    alert($('#input_usersername').val() + " - " + $('#input_password').val()); 
} 
+0

嗨..有一個在行動疑問..我什麼想要給?我目前的功能是userLogin(),所以我怎麼稱呼它? –

+0

這只是一個表單的經典表示,您可以將action和method屬性留出並使用'

>查看鏈接rynhe給出了 –

+0

Hi @DaniëlTulp: 這裏是我們的Ajax調用不起作用..現在當我們點擊GO按鈕時;它的用戶登錄功能,但jQuery Ajax調用不工作..有沒有解決方案? –

0

對於未來的讀者,如果你不希望使用形式替代答案。

document.addEventListener('deviceready', function() { 
    document.getElementById('pwd').addEventListener('keypress',CheckKeyPress); 
}; 

CheckKeyPress = function(e) 
{ 
    if (e.keyCode == 13) 
    { 
     userLogin(); 
    } 
}