我有以下功能:
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();">
如何在不创建多个功能的情况下将功能分开?
答案 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
输入!