0

我正在为 Metro 应用程序使用 Microsoft 的新 HTMl5 框架构建一个应用程序。我创建了一个用于提交 GET 数据的表单。问题是,单击应用程序上的“运行查询”(提交)按钮会打开一个浏览器窗口。有哪些方法可以在不打开浏览器窗口的情况下以 GET 方法提交数据。

我尝试过使用 jQuery 来做到这一点,但收效甚微。它抛出消息“jQuery”未定义。

有没有我可以使用的 HTML,或者更好的是,我可以添加到 default.js 中?

根据要求,我正在使用 jQuery:

jQuery(document).ready(function () {

jQuery('.ajaxform').submit(function () {

    $.ajax({
        url: $(this).attr('action'),
        type: $(this).attr('method'),
        dataType: 'json',
        data: $(this).serialize(),
        success: function (data) {
            for (var id in data) {
                jQuery('#' + id).html(data[id]);
            }
        }
    });

    return false;
});

});
4

2 回答 2

0

从表单中获取值,将其保存在对象中,使用 javascript 函数对其进行编码并使用 xhr,

使用 js 获取表单值,比如说

    var b=document.getElementById(textboxname).value;
    var params={
    parameter:b,
    }

为了编码您的参数,您可以使用以下 javascript 函数,

  function formatParams(y) {
    var queryStr = "";

    for (var propertyName in y) {
        var val = y[propertyName];
        queryStr += propertyName + "=" + encodeURI(val) + "&";
    }

    return queryStr.slice(0, -1);
}

使用 WinJS.xhr 调用您的 Web 服务

    WinJS.xhr({
        type: "get/post",
        url: "your URL",
        data: formatParams(params),
        headers: { "Content-type": "application/x-www-form-urlencoded" }
    }).done(function (response) {
        var json = JSON.parse(response.responseText);

       //process accordingly
        }

我假设您正在从您的 Web 服务获得 JSON 响应。

于 2013-08-22T07:27:14.157 回答
0

我猜这里你指的是 jQuery 的外部脚本。由于 winjs 在与浏览器中的典型 Web 应用程序不同的安全限制下运行,因此您的脚本必须是本地的。

由于您已经在使用 jquery - 假设版本 2.0 或更高版本与 Win8/winjs 兼容 - 请确保您在项目中包含对 jquery LOCALLY 的引用,而不是来自外部网站,您可以只使用 $(document) 而不是 jQuery (文档)。

即: <script src="/scripts/jquery-2.0.0.js" /> (或任何您的版本)并确保您在本地拥有文件。您可以在Visual Studio 中进入 Tools->Library Package Manager->Package Manager Console并输入 install-package jquery

于 2013-08-23T00:24:44.970 回答