我有一个带有“删除”按钮的名称列表,每行都是一个表单,点击删除列表应该实时更新但不起作用,因为在这个插件中我只能设置一个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脚本.. 希望你能帮助我,抱歉英语不好
答案 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请求的结果。