Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML:从没有ID的输入中获取值_Javascript_Jquery_Html_Vb.net - Fatal编程技术网

Javascript HTML:从没有ID的输入中获取值

Javascript HTML:从没有ID的输入中获取值,javascript,jquery,html,vb.net,Javascript,Jquery,Html,Vb.net,一直在四处寻找,我似乎找不到答案,所以也许我的措辞是错误的,但它来了 所以我有一个表显示数据库中的数据。在jQuery中,我这样做是为了添加一行空输入,然后将其提交到数据库,这样做很好 我现在正试图编辑它。因此,每行都有一个按钮来编辑该行,该按钮将把行值放入输入中,以便您可以更改值并更新数据库。我该怎么做?我正在研究如何使用输入框,但我不确定如何在输入框没有某种ID的情况下获取它们的值 我尝试使用的jQuery: $('#tbl')。在('click','.xx',function()上{ $(

一直在四处寻找,我似乎找不到答案,所以也许我的措辞是错误的,但它来了

所以我有一个表显示数据库中的数据。在jQuery中,我这样做是为了添加一行空输入,然后将其提交到数据库,这样做很好

我现在正试图编辑它。因此,每行都有一个按钮来编辑该行,该按钮将把行值放入输入中,以便您可以更改值并更新数据库。我该怎么做?我正在研究如何使用输入框,但我不确定如何在输入框没有某种ID的情况下获取它们的值

我尝试使用的jQuery:
$('#tbl')。在('click','.xx',function()上{
$(this).兄弟姐妹()。每个(
函数(){
if($(this).find('input').length){
$(this).text($(this.find('input').val());
}
否则{
var t=$(this.text();
$(this.text(“”).append($(“”,{'value':t}).val(t));
}
});
});
我是不是想得太多了?我是否应该抓取这些值,然后将它们放入预先制作的输入框中

更新: HTML:

sb.AppendLine("<table style='width: 80%;'>")
sb.AppendLine("<tr class='inputRowbelow'>")
sb.AppendLine("<td style='width: 20%;' class='ui-widget-header ui-corner-all'>Area</td>")
sb.AppendLine("<td class='ui-widget-header ui-corner-all'>Details</td>")
sb.AppendLine("<td class='ui-widget-header ui-corner-all'>Options</td>")
sb.AppendLine("</tr>")

For Each w In workItems
    sb.AppendLine("<tr>")
    sb.AppendLine("<td>" & w.area & "</td>")
    sb.AppendLine("<td>" & w.details & "</td>")
    sb.AppendLine("<td><a href='#' class='fg-button ui-state-default ui-corner-all edit'><img src='/images/spacer.gif' class='ui-icon ui-icon-pencil' /></a></td>")
    sb.AppendLine("</tr>")
Next

sb.AppendLine("</table>")
sb.AppendLine(“”)
某人加上一行(“”)
某人在某一行(“区域”)
某人附文(“细节”)
sb.附录行(“选项”)
某人加上一行(“”)
对于工作项中的每个w
某人加上一行(“”)
sb.追加行(“&w.area&”)
sb.追加行(“&w.details&”)
某人加上一行(“”)
某人加上一行(“”)
下一个
某人加上一行(“”)

而不是对每个。。。在里面接下来,使用带有计数器的For循环。给每一个按钮和每一行一个ID,最后是当前计数器值。然后可以使用Jquery使每一行分别可编辑,因为每一行现在都有一个行号。

有几种方法可以做到这一点,包括更改VB代码以向html添加额外数据,但我将从纯javascript/Jquery解决方案中回答这一问题

首先,您需要处理每个编辑按钮的单击事件,然后找到匹配的行,然后您可以获得该行的第一个元素

$(".edit").click(function(e){
    e.preventDefault();//prevent the link from navigating the page
    var button = $(this);//get the button element
    var row = button.closest("tr");//get the row that the button belongs to
    var cellArea = row.find("td:eq(0)");//get the first cell (area)
    var cellDetails = row.find("td:eq(1)");//get the second cell (details)

    //now you can change these to your inputs and process who you want
    //something like this...
    ConvertToInput(cellArea, "area");
    ConvertToInput(cellDetails, "details");
});

function ConvertToInput(element, newId){
    var input = $("<input/>");//create a new input element
    input.attr("id", newId);//set an id so we can find it
    var val = element.html();//get the current value of the cell
    input.val(val);//set the input value to match the existing cell
    element.html(input);//change the cell content to the new input element
}
$(“.edit”)。单击(函数(e){
e、 preventDefault();//阻止链接导航页面
var button=$(this);//获取button元素
var row=button.closest(“tr”);//获取按钮所属的行
var=row.find(“td:eq(0)”;//获取第一个单元格(区域)
var cellDetails=row.find(“td:eq(1)”;//获取第二个单元格(详细信息)
//现在,您可以将这些更改为您的输入并处理您想要的人
//像这样的。。。
转换输入(区域);
转换输入(单元格详细信息,“详细信息”);
});
函数ConvertToInput(元素,newId){
var input=$(“”);//创建一个新的输入元素
input.attr(“id”,newId);//设置一个id以便我们可以找到它
var val=element.html();//获取单元格的当前值
input.val(val);//设置输入值以匹配现有单元格
html(input);//将单元格内容更改为新的输入元素
}


然后,您可以使用每个字段的ID值执行您所说的已实现的保存操作,以获取要保存的值。

使用JQuery查找DOM元素有很多方法,您可以发布html以便我们提供建议吗some@musefan我不知道你想要什么,这只是一张标准的桌子。如果你真的想,我可以更新它,但任何和所有的方式将很高兴看到。我想看看你的表格,我想看看每一行的编辑按钮与该行其余部分的关系。有很多方法可以从头开始开发类似的东西,但是这个问题是关于回答您的特定实例的。@musefan我已经用我正在使用的表更新了这些问题。这都是在StringBuilder中完成的。好的,只查看HTML输出会更容易,但这样就可以了。因此,您想获得与编辑按钮匹配的行的区域和详细信息的
td
元素吗?我以前确实考虑过这一点,但我觉得应该有更好的方法来实现这一点。谢谢你的回答。非常好,为我工作,谢谢你的解释+1和正确答案。干得好。快速提问,如果你点击多个按钮,它会用输入标签填充输入。。我们怎样才能阻止这一切?(除了移除/隐藏按钮外)@Ruddy:你可以有某种
isEdit
标志,但我还是建议隐藏按钮,或者用“保存”按钮替换它