我有一个关于Jquery ui对话框的问题。
我有/我做了什么:我有多种形式(取决于从mysql结果返回的结果)。表格如下:
<form action="?" method="POST" id="form1">
<input type="text" name="title"/>
.................................
other inputs
.................................
<input type="submit" class="delete" id="delete" name="delete" value="delete"/>
</form>
相同的表单,但只有表单的id为'form2',或取决于查询(form3,form4等....)
jquery代码
$(document).ready(function(){
var $dialog = $('<div></div>').html('<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Do you really want to delete it?')
.dialog({
autoOpen:false,
resizable: false,
height:140,
modal: true,
title:'Confirm delete',
buttons: {
"Yes": function(){
*********************************
document.forms["form1"].submit();
*********************************
$(this).dialog("close");
},
"No": function(){
$(this).dialog("close");
}
}
});
$('#delete').click(function(){
$dialog.dialog('open');
return false;
});
});
我想达到什么目标? 我想仅针对删除按钮所在的表单触发提交操作。我的意思是,如果用户单击form1上的删除按钮,则只应提交form1。我在Jquery代码中用星星突出显示了一行。 在该特定行上,当用户点击删除按钮时,应检索相应表单或表单索引的ID(删除按钮所属的)并仅提交该特定表单。
我面临的问题: 我可以硬编码表单ID,但我无法确切地知道表单的数量,因为它取决于搜索词。所以我试图动态检索它。有可能吗?
P.S。在删除按钮单击事件上,如果我选择$('#delete'),它只适用于一个表单。如果我使用$('。delete'),它是提交所有表格还是可能过度写作? (我猜是因为在做var_dump($ _ POST)时它返回一个空数组)
任何帮助将不胜感激。如果需要更多信息,我可以提供。
答案 0 :(得分:0)
愿这会帮到你
$(this).parent('form').attr('name')
$(this).parent('form').serialize()
$('.delete').click(function(){ alert($(this).parent('form').attr('name')); alert($(this).parent('form').serialize()); });
谢谢
答案 1 :(得分:0)
@itachi
你不能给多个元素赋予相同的id。 更改您的代码如下
$('.delete').click(function(e){
e.preventDefault();
currentForm = $(this).parent('form').get(0);
$dialog.dialog('open');
return false;
});
和
buttons: {
"Yes": function(){
if(currentForm){
currentForm.submit();
}
$(this).dialog("close");
},
"No": function(){
$(this).dialog("close");
}
}
您可以查看正在运行的演示here
答案 2 :(得分:0)
该功能可以
<script>
function submitform(formname){
$(document).ready(function() {
$(("#"+formname)).submit(function() {
$.post('page.php', $(this).serialize(), function(data) {
$("#cart").append(data);
});
return false;
});
});
}
</script>
表单提交按钮
您可以在渲染表单时提供表单名称
<button class="large-6 columns" type="submit" onclick="javascript:submitform('formname')">Select</button>