【问题标题】:handle android go button using phonegap使用phonegap处理android go按钮
【发布时间】:2013-11-27 13:05:19
【问题描述】:

我正在使用 HTML5 和 PhoneGap。目前面临一个问题;我无法处理 Android 软键盘的 GO 按钮。 我的功能是这样的;我有一个登录按钮,当我输入密码并单击键盘的 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);}
    }

【问题讨论】:

标签: android jquery html cordova android-keypad


【解决方案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());
}

【讨论】:

  • 嗨..有疑问..在行动中我想给出什么?我当前的函数是 userLogin() 那么我该如何调用它呢?
  • 那只是一个典型的表单表示,你可以把action和method属性去掉,然后使用&lt;form onsubmit="userLogin()"&gt;查看rynhe给出的链接
  • 嗨@Daniël Tulp:这里我们的Ajax调用不起作用..现在当我们点击GO按钮时;它转到 userLogin 函数但 jQuery ajax 调用不起作用.. 有什么解决方案吗?
  • 你读过stackoverflow.com/questions/11394607/… 吗?如果是,但您仍然无法解决,请在编辑中发布您的代码(包括 js)
  • 你能检查我的最新代码吗?我已经更新了我最新的!
【解决方案2】:

对于未来的读者,如果您不想使用表单,请替代答案。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多