JQuery не будет отправлять при нажатии кнопки iphone GO - PullRequest
0 голосов
/ 09 ноября 2011

РЕДАКТИРОВАТЬ - Просто понял, что это больше не проблема с новой iOS. Я не обновил свой телефон, но он отлично работает с моим iPad, поэтому я предполагаю, что если я обновлюсь, он будет работать нормально. Спасибо.

Этот вопрос задавался несколько раз, но принятый ответ не работает для меня. Я надеюсь, что кто-то может обнаружить какую-то глупую ошибку и не возвращаться с «просто использовать тип ввода = отправить».

Я пытаюсь выполнить проверку ajax в форме входа в систему, поэтому в форме входа нет кнопки отправки, а есть кнопка ввода type = "button", вызывающая JavaScript при нажатии. Однако при использовании iphone нажатие кнопки «GO» приводит к буквальной отправке формы (она размещается на той же странице и помещает переменные в строку запроса).

На самом деле нажатие (касание) кнопки работает правильно. Только с помощью кнопки GO все портится.

Вот мой код формы:

<form name="loginform" id="loginform">
<table>
<tr><td>Username:</td><td><input type="text" id="username" name="username" /></td></tr>
<tr><td>Password:</td><td><input type="password" id="password" name="password" /></td></tr>
<tr><td></td><td align="right"><button type="button" id="login">Login</button></td></tr>
</table>
</form>

и вот мой javascript:

<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script language="javascript">
$(document).ready(function(){
$(window).load(function(){
    $("#login").click( function() {
        checkanswers();
    });
    $("#username, #password").keyup(function(event){
        if(event.keyCode==13){
            checkanswers();
        }
    });
    $("#loginform").submit(function() {
        checkanswers();
    });
});
});
</script>

Любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 13 августа 2012

Добавление действия в форму может сработать или попытаться добавить <input type="submit" /> к вашей форме.

0 голосов
/ 07 августа 2013

Попробуйте это:

$("html").off("keypress").on("keypress", function (e) {
    var which = e.which,
    keyCode = e.keyCode;
    if (((which && which === 13) || (keyCode && keyCode === 13))) {
        e.preventDefault();
            //Submit your stuff here.
    }
});
0 голосов
/ 22 мая 2012

Вы можете иметь кнопку отправки, и в случае нажатия кнопки отправки вы можете сделать это:

onClick="validate();return false;"

Затем в функцию validate вернуть true, если проверка прошла успешно.

...