无法获取使用jQuery Popconfirm插件单击的按钮的名称

时间:2014-10-23 09:31:34

标签: java javascript php jquery forms

所以我决定使用这个插件 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那样发布或者如何让提交函数也传递按钮名称变量

2 个答案:

答案 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。