我正在使用文字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 :(得分:1)
我没有使用过那个库,但看起来你正在检测一个<a>
元素,因此点击它时可以编辑它的文本。因此,您应该使用.text()
来获取值,而不是.val()
。