我正在尝试将数据发送到我的代码隐藏方法。它起作用,除非我添加到data
param。
function (obj) {
$.ajax({
type: "POST",
url: "Pages.aspx/EditPage",
data: "{'nodeID': '" + $(this).attr('id') + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
}
});
}
为什么我添加的参数导致Web方法不被命中?
更新:在看到抛出了哪些客户端错误之后,似乎ID未定义。我获取元素ID的方法不正确吗?请记住我正在使用jsTree和ca我可能使用(obj)?
答案 0 :(得分:1)
尝试以下内容:
jQuery.parseJSON('{"name":"John"}');
答案 1 :(得分:0)
试试这个:
data: "{nodeID: '" + $(this).attr('id') + "'}",
编辑:至于获取ID,您可以使用this.id
答案 2 :(得分:0)
要尝试的一些事情
看起来像这样:
function (obj) {
$.ajax({
type: "POST",
url: "Pages.aspx/EditPage",
data: '{nodeID: "' + $(this).attr('id') + '"}',
dataType: "json",
success: function (msg) {
alert('success!');
}
});
}
答案 3 :(得分:0)
在Chrome中调试后,我发现ID未定义。我把日期参数改写为:
data: '{"nodeID": "' + obj.attr('id') + '"}',
因为obj
是我目前在jsTree中的节点。
感谢大家提醒我在FF或Chrome中调试并调整引号。
答案 4 :(得分:0)
你正在使用的'this'引用是指jQuery'the'。因此,您的ID未定义。
假设你试图从你的函数参数中获取'obj'的id,我会改写这样的函数:
jQuery.fn.your_func_name = function(){
$.ajax({
type: "POST",
url: "Pages.aspx/EditPage",
data: "{'nodeID': '" + $(this).attr('id') + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
});
}//function
像这样使用:
$('#some_element').your_func_name();