2013-11-27 2 views
2

Работаю в HTML5 и PhoneGap. В настоящее время я столкнулся с проблемой; Я не мог обработать кнопку GO на Android-клавиатуре Android. Моя функциональность такова; У меня есть кнопка «Вход», и когда я ввожу пароль и нажимаю кнопку 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

Я предполагаю, что 'go' кнопка работает только для отправки 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 несколько, но, пожалуйста, обратите внимание на то, как вы должны использовать метки с атрибутом.

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

, который был просто классическим представлением формы, вы можете оставить атрибуты действия и метода и использовать '

' посмотреть ссылку rynhe дал –

+0

Привет @ Daniël Tulp: Здесь наш Ajax вызов не работает .. теперь, когда мы нажимаем кнопку GO; он переходит к функции userLogin, но jQuery ajax-вызов не работает. Есть ли какое-нибудь решение? –

0

Для будущих читателей, альтернативный ответ, если вы не хотите использовать формы.

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

CheckKeyPress = function(e) 
{ 
    if (e.keyCode == 13) 
    { 
     userLogin(); 
    } 
} 
Смежные вопросы