Jquery 在ajax post中包含Id

Jquery 在ajax post中包含Id,jquery,ajax,post,Jquery,Ajax,Post,我被这部分卡住了… 我试图在AjaxPost将ID发送到服务器时将其包括在内,但在查找时,我无法找到正确的信息。 我有一组具有id的html输入。它们都有一个按钮出现在按键旁边,当我单击该按钮时,它会保存值,ajax会将其发送到服务器。我在文本框中得到了要包含的值,但似乎无法将该文本框的id放入post。 这是我的Ajax函数 如您所见,id已被排除提前感谢。尝试更改此项: data: "{ Id: " + $(".solo1").attr('id') + ", Value: " + $(

我被这部分卡住了…

我试图在AjaxPost将ID发送到服务器时将其包括在内,但在查找时,我无法找到正确的信息。
我有一组具有id的html输入。它们都有一个按钮出现在
按键
旁边,当我单击该按钮时,它会保存值,ajax会将其发送到服务器。我在文本框中得到了要包含的值,但似乎无法将该文本框的id放入
post


这是我的Ajax函数


如您所见,id已被排除


提前感谢。

尝试更改此项:

  data: "{ Id: " + $(".solo1").attr('id') + ", Value: " + $(".solo1").val() + "}",
虽然现在我回想起来,我突然想到你会有这样奇怪的行为

您最初的问题是没有定义id。这似乎超出了你的职责范围

您可以在ajax调用之前执行类似的操作

var id = null;
$('.solo1').each(function(){
    if($(this).val() != '')
    {
        id = $(this).attr('id');
    }
});
但是,对于您在这里实际要做的事情来说,这更像是一项肮脏的工作。

尝试改变这一点:

  data: "{ Id: " + $(".solo1").attr('id') + ", Value: " + $(".solo1").val() + "}",
虽然现在我回想起来,我突然想到你会有这样奇怪的行为

您最初的问题是没有定义id。这似乎超出了你的职责范围

您可以在ajax调用之前执行类似的操作

var id = null;
$('.solo1').each(function(){
    if($(this).val() != '')
    {
        id = $(this).attr('id');
    }
});
但是,对于您在这里实际要做的事情来说,这更像是一项肮脏的工作。

试试这个:

<div id="featherbone">
<input class="solo1" data-id="craven1"/>
</div>
试试这个:

<div id="featherbone">
<input class="solo1" data-id="craven1"/>
</div>

下面是我如何修复它的。。在ajax调用的范围内创建变量,并使用数据中的变量。

    $('.saveButton').click(function () {
        var id = $(this).prev().attr('id'); //used in the "data" attribute of the ajax call
        var value = $(this).prev().val(); //used in the "data" attribute of the ajax call

        $.ajax({
            type: "POST",
            url: "Default.aspx",
            data: "{Id: " + id + ", Value: " + value + "}",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                console.log(data);
            }
        });
        $(this).hide();
    }); //runs ajax call and removes ui-icon after .saveButton is clicked



我遇到的另一个问题是,它将只获取第一个文本框的值和id。。而不是其他人。。我发现
.prev()
(在“id”和“value”变量中输入)是绕过此挫折所必需的。


继续编码

下面是我如何修复它的。。在ajax调用的范围内创建变量,并使用数据中的变量。

    $('.saveButton').click(function () {
        var id = $(this).prev().attr('id'); //used in the "data" attribute of the ajax call
        var value = $(this).prev().val(); //used in the "data" attribute of the ajax call

        $.ajax({
            type: "POST",
            url: "Default.aspx",
            data: "{Id: " + id + ", Value: " + value + "}",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                console.log(data);
            }
        });
        $(this).hide();
    }); //runs ajax call and removes ui-icon after .saveButton is clicked



我遇到的另一个问题是,它将只获取第一个文本框的值和id。。而不是其他人。。我发现
.prev()
(在“id”和“value”变量中输入)是绕过此挫折所必需的。


继续编码

id
的值是多少
.text()
将始终返回元素的文本内容。
id
的值是多少
.text()
将始终返回元素的文本内容。Hmmm。。它在那里有Id,但它只发布所有帖子的第一个Id(craven1)。。给我一点时间,我会更新内容来展示我是如何设置javascript的,这是我所说的奇怪行为。调用$(“.solo1”).val()是个坏主意,因为从技术上讲,所有这些输入字段都有一个值,即使您没有定义它。所以它总是给出第一个发现的结果。我可以使用一个选项进行更新——尽管这是一个糟糕的做法——在保留此html结构的同时选择值……但当我在文本框中输入内容并保存时,它会将我输入的值发布到id为craven1/2/的文本框中,依此类推。它有我输入的那些不同的值,但它仍然为它们发布craven1 id。。如果这有意义的话,他们是不同的选择者,有不同的规则。val()可能会在第一次出现非空值时停止。attr('id')将获取第一个id为attr的文件,而不考虑其值。我的更新可能会通过,因为它为输入对象分配了一个非空值的变量。我错了。。你是对的。它为所有文本框的id=“craven1”输入相同的值。。看起来就像回到了meHmmm的绘图板上。。它在那里有Id,但它只发布所有帖子的第一个Id(craven1)。。给我一点时间,我会更新内容来展示我是如何设置javascript的,这是我所说的奇怪行为。调用$(“.solo1”).val()是个坏主意,因为从技术上讲,所有这些输入字段都有一个值,即使您没有定义它。所以它总是给出第一个发现的结果。我可以使用一个选项进行更新——尽管这是一个糟糕的做法——在保留此html结构的同时选择值……但当我在文本框中输入内容并保存时,它会将我输入的值发布到id为craven1/2/的文本框中,依此类推。它有我输入的那些不同的值,但它仍然为它们发布craven1 id。。如果这有意义的话,他们是不同的选择者,有不同的规则。val()可能会在第一次出现非空值时停止。attr('id')将获取第一个id为attr的文件,而不考虑其值。我的更新可能会通过,因为它为输入对象分配了一个非空值的变量。我错了。。你是对的。它为所有文本框的id=“craven1”输入相同的值。。看来我要回到绘图板上去了