1

我有以下功能:

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();">

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

4

2 回答 2

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 必须是唯一的,不能有多个submit具有相同 ID 的输入!

于 2013-05-23T21:39:41.627 回答
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.
    ...
}
于 2013-05-23T21:37:24.023 回答