PhoneGap中的表单提交问题

时间:2011-05-04 21:15:38

标签: cordova jquery-mobile

我正在使用JQuery Mobile和PhoneGap构建一个简单的移动应用程序,我在第一个表单上遇到了问题,甚至没有添加任何逻辑!

到目前为止,应用程序只有一个主页,其中包含指向简单“新帐户”表单的链接。这是相关的JQuery Mobile标记HTML:

<div id="home" data-role="page">
    <div data-role="header">
        <h1>Home</h1>
    </div>

    <div data-role="content">
        <a href="#newAccountPage" data-role="button">New Account</a> 
    </div>

</div>

<div id="newAccountPage" data-role="page">
    <div data-role="header">
        <h1>Add New Account</h1>
    </div>

    <div id="newAccountContent" data-role="content">
        <form id="newAccountForm" action="#" method="post">
        <div data-role="fieldcontain">
            <label for="accountCode">Account Code</label> 
            <input id="accountCode" name="account-code" type="text"/>                           
            <label for="accountDesc">Description</label>  
            <textarea id="accountDesc" cols="40" rows="10" name="account-desc"></textarea>
        </div>

        <div id="buttonDiv" align="center">
            <input type="submit" value="New" data-inline="true"/>
        </div>
        </form>
    </div> <!-- newAccountContent --> 
</div> <!-- newAccount -->

这一切在浏览器和带有PhoneGap的iPhone模拟器上工作正常(从主页到表单的页面转换工作,当我点击提交按钮时,应用程序将恢复到主页)。

但是当我在iPhone设备上运行时,表单提交会在设备上生成“错误加载页面”错误消息,并且表单页面保持不变。

我确信这与一个令人眼花缭乱的明显错误相关,但它让我难以接受新手。我怀疑它与JQuery Mobile在设备上处理表单提交的方式有关,但似乎奇怪的是模拟器上没有错误。

请帮忙!

2 个答案:

答案 0 :(得分:1)

我无法为您测试,但我认为您的问题是您尝试在表单中使用POST。 如何将phonegap用于http POST?

答案 1 :(得分:1)

尝试添加jQuery代码,用于处理在加载phonegap之后调用的函数内部的表单submition - onBodyLoad()或类似的东西。 e.g:

$('#your-form-id').submit(function() {
           var params = $('#your-form-id').serializeArray();

           //you can either send the data to remote server
           $.post(http://localhost/myserver,params, function(){
                    alert("sending data");
           });
           //or you can process it on client side
           //which would require storing data inside of some storage etc.
});

使用phonegap时通常没有很多的debuging消息,尝试使用js函数

  

的console.log(some_object);

并查看weinre(http://muellerware.org/papers/weinre/manual.html