2015-06-09 2 views
0

У меня есть следующий HTML/JavaScript в моей index.htmlPhoneGap форма Ajax не работает

<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="format-detection" content="telephone=no" /> 
    <meta name="msapplication-tap-highlight" content="no" /> 
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 --> 
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 
    <link rel="stylesheet" type="text/css" href="css/index.css" /> 
    <title>Hello World</title> 
    <script type="text/javascript"> 
     function PostData() { 
      // 1. Create XHR instance - Start 
      var xhr; 
      if (window.XMLHttpRequest) { 
      xhr = new XMLHttpRequest(); 
      } 
      else if (window.ActiveXObject) { 
      xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      else { 
      throw new Error("Ajax is not supported by this browser"); 
      } 
      // 1. Create XHR instance - End 

      // 2. Define what to do when XHR feed you the response from the server - Start 
      xhr.onreadystatechange = function() { 
       if (xhr.readyState === 4) { 
       if (xhr.status == 200 && xhr.status < 300) { 
       document.getElementById('div1').innerHTML = xhr.responseText; 
       } 
      } 
      } 
      // 2. Define what to do when XHR feed you the response from the server - Start 

      var userid = document.getElementById("userid").value; 

      // 3. Specify your action, location and Send to the server - Start 
      xhr.open('POST', 'localhost:3000/ajax'); 
      xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
      xhr.send("userid=" + userid); 
      // 3. Specify your action, location and Send to the server - End 
     }; 
    </script> 
</head> 
<body> 


    <div class="app"> 

     <h1>Ajax Testarea</h1> 

      <form> 
        <label for="userid">User ID :</label> 
        <input type="text" name ="userid" id="userid" /> 
        <div id="div1"></div> 
        <input type="button" value ="Check" onclick="PostData()" /> 
      </form> 
    </div> 



    <script type="text/javascript" src="cordova.js"></script> 
    <script type="text/javascript" src="js/index.js"></script> 
    <script type="text/javascript"> 
     app.initialize(); 
    </script> 
</body> 

Который отлично работает на моем Mac, но когда я пытаюсь заставить его работать с PhoneGap I не можете нажать кнопку, чтобы отправить форму. И поэтому он не будет запускать функцию PostData().

Я также не уверен, что это хорошая практика, чтобы разместить Javascript непосредственно внутри html или лучше разместить его внутри index.js? Я прочитал о помещении его внутри:

onDeviceReady: function() { 
     app.receivedEvent('deviceready'); 
    // ---My Code--- 
}, 

Я был бы очень рад, если кто-то может указывать мне, что я делаю неправильно!

+1

Запустите свой код, когда вы получите событие, готовое к устройству. Как вы сказали в 'onDeviceReady' функции. – JcDenton86

ответ

0

У меня возникли проблемы с использованием функций ClickClick и Jquery's Click в Phonegap для iOS. Я должен был использовать функцию JQuery .На() с touchstart вместо

$('#buttonID').on({ 'touchstart' : function(){ /* Do stuff... */ } }); 

Не похоже, что вы используете JQuery так, может быть, попробовать onTouch="function" или onTouchStart="function" вместо OnClick.

+0

спасибо за ввод! я попробую и дам вам знать результаты! –

+0

все еще не работает! что случилось, когда вы нажали кнопку? потому что в моем случае кажется, что я даже не могу «щелкнуть» по нему - просто ничего не происходит ... –

+0

@ Hans-WernerOhneSinn Вы также можете попробовать этот 'ontouchstart =" funtion() "' или использовать touchstart jQuery просто чтобы проверить, работает ли он. Если он работает нормально в браузере, я бы определенно сказал, что это событие без клика, это довольно распространенная проблема в мобильных браузерах. –

Смежные вопросы