两个相同的POST操作与jquery模式屏幕,一个工作,一个不?

我正在使用这个颜色框代码:

    $(document).ready(function(){ $("#cboxFormButton").click(function(e){ e.preventDefault(); $.colorbox({ href: $(this).closest('form').attr ('action'), data: {a: $("input#111").val()} }); return false; }); });  

以及这两个相同的POST操作按钮:

 

这是加载的目标rrr1.PHP文件:

 <?php if(isset($_POST['a'])); switch ($_POST['a']) { case "1": $param1 = "1"; break; case "2": $param1 = "2"; break; default: $param1 = "other"; } 

当我单击第一个按钮时,会打开一个模态窗口并加载PHP就好了,但是当我单击第二个按钮时,它只是直接重定向到PHP文件。

这是因为他们共享相同的ID吗?

让我们说我想要100个这些相同的按钮,并且在每个按钮中只更改输入的值(现在为“1”,它将是2,3,4 … 100)。 我希望模态窗口以相同的方式保持工作,并根据这些变化的值显示不同的内容。 所以基本上我宁愿不为每个按钮添加额外的代码。

是什么原因造成的? 什么是最有效的解决方案?

编辑:

现在我可以理解我必须像这样繁殖代码:

  $(document).ready(function(){ $("#cboxFormButton1").click(function(e){ e.preventDefault(); $.colorbox({ href: $(this).closest('form').attr ('action'), data: {a: $("input#111").val()} }); return false; }); }); $(document).ready(function(){ $("#cboxFormButton2").click(function(e){ e.preventDefault(); $.colorbox({ href: $(this).closest('form').attr ('action'), data: {a: $("input#222").val()} }); return false; }); });  

有没有更高效/更短的代码?

对于HTML元素,ID必须是唯一的。 使用元素名称和相对位置来获取数据。 然后,您可以完全删除冲突的ID。

 

所有DOM元素都应具有唯一ID,如此处所述。

不幸的是,DOM的两个元素具有相同的ID cboxFormButton

使ID唯一。