所以我决定使用这个插件 https://github.com/Ifnot/PopConfirm 因为它被推荐为一个很好的确认按钮。除了一件事之外,我已经设置好并且一切正常。
我使用点击按钮的名称验证PHP中的所有表单,因为我有几个按钮,如保存,取消,删除。因此,当在PHP中提交表单时,我可以使用的POST变量如下所示,我可以使用
验证按钮PHP e.g.
Array ( [supplier] => "david" [customer] => "new buy" [save] => )
Validate Using
if(isset($_POST['save'])){}
但是当我使用popconfirm插件时,由于它使用.submit()来提交表单,因此在表单提交时我只获取输入框的值而不是按钮的名称
Using popconfirm to submit the form, I end up with
Array ( [supplier] => "david" [customer] => "new buy" )
由于在使用popconfirm时缺少$ _POST [' save'],因此我无法验证PHP中按下了哪个按钮,因为它没有被传递。
我可以看到该插件使用
form.submit();
提交表单,但我无法弄清楚为什么按钮的名称也没有像PHP那样发布或者如何让提交函数也传递按钮名称变量
答案 0 :(得分:0)
当您使用jQuery(PopConfirm使用)提交表单时,按钮'名称和值不会与其他表单数据一起传递(我也不知道原因) 如果你看到jquery.popconfirm.js的来源,你可以通过搜索这行评论来搜索处理按钮的部分:
// If the button is a submit one
您将找到处理按钮的部分。在 form.submit();
之前添加这行代码btnName = typeof(self.attr('name')) === 'undefined' ? '' : self.attr('name');
btnVal = typeof(self.attr('value')) === 'undefined' ? '' : self.val();
form.append('<input type="hidden" name="' + btnName + '" value="' + btnVal + '" />');
答案 1 :(得分:0)
现在,这个行为已经修正了刚刚起草的最新版本v0.4.5。