如何在ajax函数中插入行号?

时间:2013-05-23 21:29:30

标签: javascript ajax jquery

我有以下功能:

function getvalues(){
var sendid = $('#id').val();
$.ajax({
type: "POST",
url: "ready.php",
data: {sendid}
}).done(function( result ) {
$("#msg").html( "worked" );
});

它可以正常使用以下内容:

<input type="hidden" name="id" id="id" value="$id">
<input type="button" id="submit" value="submit" onClick="getvalues();">

问题是我有多个行使用相同的功能,需要区分它们,所以我使用行。我要问的是如何使用10个不同的行(具有10个不同的ID)调用1个函数而不创建10个不同的函数。

例如,我有一个表格列表:

<input type="button" id="submit" value="submit" onClick="getvalues1();">
<input type="button" id="submit" value="submit" onClick="getvalues2();">
<input type="button" id="submit" value="submit" onClick="getvalues3();">

如何在不创建多个功能的情况下将功能分开?

2 个答案:

答案 0 :(得分:0)

首先,您有几个具有相同ID的输入。这是不允许的。您应该为每个人提供一个唯一的ID。

其次,onclick处理程序将作为参数传递给事件对象。您可以使用'event.target'检索单击的元素。 IE使用'event.srcElement'。无论哪种方式,一旦检索到元素,您就可以查询“id”属性,并确定您感兴趣的“行”。

编辑:

<input type="button" id="submit1" value="submit" onClick="getvalues();">
<input type="button" id="submit2" value="submit" onClick="getvalues();">

function getvalues(event) {
    var id= event.target.id;  // now the id var contains "submit1", "submit2", etc.
    ...
}

答案 1 :(得分:0)

为什么不将参数传递给您的函数?

function getvalues(id){
    $.ajax({
        type: "POST",
        url: "ready.php",
        data: {id: id}, // I used this notation because POST request needs key-value pair to retrieve data
        success: function(result) {
            $("#msg").html("worked");
        }
    });
}

你可以这样使用它:

<input type="hidden" name="id" id="id" value="1234">
<input type="button" id="submit" value="submit" onClick="getvalues(this.form.id.value);">

注意: ID必须是唯一的,您不能拥有多个具有相同ID的submit输入!