2013-08-20 65 views
0

我正在構建一個應用程序,使用微軟新的Metro應用程序的HTMl5框架。我創建了一個用於提交GET數據的表單。問題是,單擊應用程序上的「運行查詢」(提交)按鈕將打開一個瀏覽器窗口。我可以通過GET方法提交數據而無需打開瀏覽器窗口。在Windows 8中未打開瀏覽器提交表單

我試過用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; 
}); 

}); 
+0

我們展示你的代碼。 – SLaks

+0

你想要http://msdn.microsoft.com/en-us/library/windows/apps/br229787.aspx – SLaks

回答

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

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響應調用Web服務。

0

我猜你在這裏指的是jQuery的外部腳本。 由於winjs在瀏覽器中運行的安全限制不同於典型的Web應用程序,因此您的腳本必須是本地的。

因爲你已經在使用jQuery - 假設2.0或更高版本是Win8/winjs兼容 - 確保你已經在你的項目中包含了對jQuery LOCALY的引用,而不是從外部網站,你可以使用$(document )而不是jQuery(文檔)。

即: < SCRIPT SRC = 「/腳本/ jQuery的2.0.0.js」/ >(或任何你的版本) ,並確保你在本地的文件。你可以只是去的Visual Studio工具 - >庫包管理器 - >軟件包管理器控制檯和類型 安裝包的jQuery

相關問題