jquery.form:如何在一个页面中设置多个表单?

时间:2010-01-22 11:32:40

标签: php jquery forms

我有一个带有“删除”按钮的名称列表,每行都是一个表单,点击删除列表应该实时更新但不起作用,因为在这个插件中我只能设置一个id(事实上它)在列表中运行时只有一个名称)

这是javascript函数:

$(document).ready(function() {      
var options = {          
target:        '#risposta',   
resetForm: true,      
success: function(showResponse) {
$("#lista_categorie").load("categorie.php").show('fast');
$('#risposta').fadeIn(2000),setTimeout(function({$('#risposta').fadeOut(1000);},5000);}};
$('#elimina_categoria').ajaxForm(options);  
}); 

使用php构建html表单:

<form action="categorie_elimina.php?id=$row['id']" method="post" id="elimina_categoria">
<p>$row['nome'] 
<input type="submit" id="submit_pro" value="elimina" class="elimina"></p>
</form>

我应该为每个表单创建一个不同的id(例如使用行的id),但是我应该告诉js函数,每个表单必须遵循该行中的该函数:

$('#elimina_categoria').ajaxForm(options);  

我也使用了这段代码:

$('[id|=elimina_categoria]').ajaxForm(options);

但这只适用于第一次点击,第二次点击它打开php脚本.. 希望你能帮助我,抱歉英语不好

1 个答案:

答案 0 :(得分:1)

首先:

您应该使用相同的类创建多个表单,而不是创建具有相同ID的多个表单。 ID属性的相同值应仅使用一次。实施例

<form id="elimina_categoria_1" class="elimina_categoria"> ... </form>
<form id="elimina_categoria_2" class="elimina_categoria"> ... </form>

如果可能,请使用比_1,_2更具描述性的命名。

当每个表单具有相同的类时,可以使用

调用ajaxForm(options)
$('form.elimina_categoria').ajaxForm(options)

第二:

你可能正在寻找的脚本是这样的

function eliminaCategoria() {
   var eliminaForm = $(this).parent().parent(); // Select the form of the button
   $.post(eliminaForm.val('action')); // Call the action defined by the form
   eliminaForm.remove(); // Remove the form-element from the page. 
   return false; // don't let the submit-button submit the form. 
}

$(document).ready( function() {
  $('.elimina').bind('click', eliminaCategoria);
});

在您目前的情况下,脚本可能无法正常工作,但我希望这有助于您前进。您可能希望添加您使用的fadeIn,fadeOut效果,并且可能需要在从页面删除表单之前检查HTTP POST请求的结果。