0

我有一个表格,我想为每一行添加一个按钮并在表格中编辑该行。我需要将 LineNumber 传递给我的 getjson 请求。我怎样才能做到这一点?这是我的桌子和我的getjson。(编辑)我刚刚注意到我要的是 LineNumber,但我真正想要的是按下的按钮的 id '+value.linenumber+'。

//table goes though a loop.
table_obj.append($('<tr><td>'+value.SLN+'</td><td  >'+value.Type+'</td><td     >
'+value.StopNumber+'</td><td>'+value.LoName+'</td><td >'+value.ReferenceNo+'</td>
<td class="hide" >'+value.TypeId+'</td><td class="hide" >'+value.LocationId+'</td>
<td class="hide" >'+value.lineNumber+'</td><td><button id='+value.lineNumber+'
onclick=edit()>Edit</button></td></tr>'));

//getjson
<script> function edit()
$.getJSON("editstops.php",{ LineNumber:$('#LineNumber').val() },stophandler)
var stophandler = function(data){
$("#SLNS").val(data[0].value.LoadNumber);
$("#Type").val(data[0].value.Type);
    $("#StopNumber").val(data[0].value.StopNumber);
$("#LoName").val(data[0].value.LoName);
$("#ReferenceNo").val(data[0].value.ReferenceNo);   
$("#TypeId").val(data[0].value.TypeId);
$("#LocationId").val(data[0].value.LocationId);
    $("#LineNumber").val(data[0].value.Linenumber);
};

</script>
4

1 回答 1

1

在您的按钮标签中,您已经将行号指定为 ID 属性。您可以轻松地将它edit()作为参数传递给函数:

<button id='+value.lineNumber+' onclick="edit('+value.lineNumber+')">Edit</button></td></tr>

然后你的编辑函数可以接受这个参数并使用它:

function edit(lineNumber) {
    $.getJSON("editstops.php",{ LineNumber: lineNumber }, stophandler);
}

请注意,如果您的按钮位于form标签内,您可能还需要return false;在调用后添加一个,edit()以防止它提交表单并刷新页面。

简单的工作示例:http: //jsbin.com/okesom/2/edit

或者,您可以onclick完全取消按钮标签中的事件。完成循环并构建表格后,将事件附加到所有按钮,如下所示:

$("button").click(function() {
    var lineNumber = $(this).attr('id');
    $.getJSON("editstops.php",{ LineNumber: lineNumber }, stophandler);
});

这是第二个选项的一个简单示例:http: //jsbin.com/ibokon/2/edit

于 2013-05-02T23:56:12.450 回答