Android-Phonegap-Jquery Mobile: отправка формы не работает второй раз - PullRequest
0 голосов
/ 28 марта 2012

Я занимаюсь разработкой мобильного веб-приложения с использованием Phonegap и JQM. У меня есть страница с формой с поиском ввода, который отправляет на себя и предположить, чтобы получить данные с помощью AJAX Query с сервера. Я ввожу текст и нажимаю клавишу ввода на телефоне, выполняется обработчик события отправки формы, но он не запускается при каждом нажатии клавиши ввода на клавиатуре телефона. Я пытался добавить обработчик событий в pagainit, pagecreate, но это не помогло, поэтому добавил скрипт на саму страницу, но его поведение было таким же. Какой правильный способ добавить обработчик в форму.

<html>
<head>
    <title>MyApp</title>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">        
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">        
    <link rel="stylesheet"  href="css/jquery.mobile-1.0.1.min.css" />
    <script src="js/jquery-1.6.4.min.js"></script>
    <script src="js/mobileinit.js"></script>
    <script src="js/ios-orientationchange-fix.min.js"></script>
    <script src="js/jquery.mobile-1.0.1.min.js"></script>
    <script type="text/javascript" src="js/phonegap.js"></script>

</head>
<body >

        <div data-role="page" id="index" >
            <form id="indexsearchform" method="post"  >

             <div data-role="content">

                <input type="search" id="txtbusinesssearch" placeholder="Search Business...."/>

              </div>    

            </form>
            <script type="text/javascript"><!--
                $('#indexsearchform').submit(function(){
                                        alert("hi");

                });

            --></script>
        </div>
</body>
</html>​

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Причина, по которой в вашей форме нет второго предупреждающего сообщения, заключается просто в том, что форма, которую вы видите после первого нажатия кнопки #submit, не совпадает с формой.Он выглядит одинаково, имеет ту же разметку, но это потому, что jQuery mobile отправляет форму по тому же адресу, на котором вы находитесь, и отображает результат.

Есть два варианта, которые вы можете сделать

1) Использование <form id="callAjaxForm" data-ajax="false">

Поведение после добавления data-ajax = "false" к форме приводит к тому, что jQuery mobile отправляет форму обычным способом, поэтому страница фактически перезагружается и обработчик щелчковКнопка #submit работает каждый раз.

2) Просто измените type = "submit" на type = "button" И нормальная кнопка будет работать нормально:)

0 голосов
/ 28 марта 2012

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

<form id="indexsearchform" method="post" onsubmit="functionToBeExecutedOnSubmit();" >
...