【问题标题】:Detect successful html form submission using POST to cross-domain script from PhoneGap, mobile jQuery app使用 POST 从 PhoneGap、移动 jQuery 应用程序跨域脚本检测成功的 html 表单提交
【发布时间】:2012-01-17 18:49:48
【问题描述】:

我正在制作一个基于 jQuery 的 PhoneGap 移动 iOS 应用程序,用于评估我大学的课程。 该大学提供了一个课程评估平台,该平台使用带有 method="POST" 的常规 html 表单。

由于该脚本属于我的大学并由其托管,因此我无法对其进行编辑或阅读。

<form action="http://example.com/script/kurt2/receive.php" method="post" target="result" onsubmit="" id="klinikkurt">
<input type="hidden" name="id" value="4136" />
<input type="range" name="q1" value="" min="1" max="6"  data-track-theme="d" data-theme="d"/>
</form>

成功提交后,脚本会重定向到感谢页面,这会使应用程序无用。向表单添加目标和隐藏的 iframe 可使应用在提交时保持可用。

我想在成功提交后显示一条感谢消息并在应用中重置表单问题(和我的问题)是我不知道如何检测成功的表单提交。

我尝试在 iframe 上使用 onLoad 事件,虽然这将在成功提交时执行 javascript,但它也会在初始加载时执行该函数。

更新

根据 Elijah 的建议,我一直在尝试(未成功)使用 jQuery 的 .ajax
这是我的代码:
HTML:同上,但我删除了表单上的动作属性。

Javascript:

$("#klinikkurt").submit(function() {
var dataString = $("#klinikkurt").serialize();
$.ajax({
    url: 'https://doit.medfarm.uu.se/script/kurt2/receive.php',
    type: "POST",
    data: dataString,
    success: function() {
        $('#kk').load('index.html');
    }
});
return false;
});

提交时除了刷新什么都没有发生。

【问题讨论】:

    标签: javascript jquery forms jquery-mobile cordova


    【解决方案1】:

    使用 AJAX 提交表单内容怎么样?这将允许您在 JS 中处理 HTTP 请求的结果,而不是浏览器直接处理它...

    【讨论】:

    • 这似乎是个好主意,虽然我对 AJAX 不太熟悉(但我确信我可以找到一个教程来告诉我如何使用它提交表单)。但这不是依靠我知道服务器响应(我不知道)才能知道它是否成功吗?
    • 好吧,“成功”是相对的——只要服务器响应 200,就会调用 ajax 成功处理程序。 jQuery AJAX 界面非常漂亮且易于使用。
    • 我一直在尝试(没有成功),但我无法让它工作。在不使用 yql 或 jsonp 之类的东西的情况下,使用 jquery .ajax 发布真的可以跨域吗?
    • 不能用ajax/jQuery做跨站http Post,只能Get。
    【解决方案2】:

    Digg 和 Reddit 等社交书签网站让用户通过对用户喜欢的内容进行投票来决定网站的主要内容。他们使用 AJAX 来处理所有的投票,以便用户能够快速轻松地表达他们对多个故事的意见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-19
      • 2017-07-14
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      相关资源
      最近更新 更多