2014-02-06 46 views
0

我建立我的控制與文字HTML注入的ASP.NET應用程序。爲此,我更具體地使用x-editable(http://vitalets.github.io/x-editable/)庫。在下面的示例中,jQ是我在服務器端建立的字符串,id是表示控件ID的字符串,而方法是我爲事件傳遞的方法。使用瓦爾()在阿賈克斯的數據參數

jQ += "$('#" + id + "').editable({" + 
         "url: function (params) {" + 
         "return $.ajax({" + 
         "type: 'POST'," + 
         "url: 'foo.asmx/" + method +"'," + 
         "data: JSON.stringify({" + id + ":$('#" + id + "').val()})," + 
         "contentType: 'application/json; charset=utf-8'," + 
         "dataType: 'json'," + 
         "processData: false," + 
         "async: true," + 
         "cache: false," + 
         "timeout: 10000," + 
         "success: function (response) {" + 
         " alert(response);" + 
         " }," + 
         " error: function() {" + 
         "alert('Error in Ajax');" + 
         "}" + 
         "});" + 
         "}" + 
         "});"; 

這實際上所有的作品都很棒!除此之外,在這條線:

"data: JSON.stringify({" + id + ":$('#" + id + "').val()})," 

相應的WebMethod參數總是空空的回來。但是,如果我用一個常量代替它,像這樣:

"data: JSON.stringify({" + id + ":'11111')})," 

而且我在後端看到11111。我嘗試了第一種方式的單引號,沒有效果。不知道我做錯了什麼。

+0

步驟之一將是CONSOLE.LOG'$( '# 「+ ID +」').VAL()'。它會返回'''',這將排除與它有關的ajax請求。通過刪除僅留下console.log的ajax請求並繼續調試來簡化示例。您可能會發現元素不是輸入,或者沒有值。 –

回答

1

我沒有使用該庫,但它看起來像你的樂器元素<a>所以它被點擊時,它的文本可以編輯。因此,您應該使用.text()來獲取值,而不是.val()