在重复表单上使用 jQUERY,随后会增加 ID

Posted

技术标签:

【中文标题】在重复表单上使用 jQUERY,随后会增加 ID【英文标题】:Use jQUERY on repeating Form, which increase ID subsequently 【发布时间】:2015-10-03 17:22:03 【问题描述】:

我有一个前端表单,它在 WordPress 循环中编辑帖子。

这意味着,在某个页面上,我循环通过自定义帖子类型,并且对于每个返回的帖子,我呈现一个表单,它在循环中编辑帖子,而不是帖子本身。

这会为每个表单创建一个像这样的表单 ID:

循环中的第一个帖子:cred_form_1096_1 循环中的第二个帖子:cred_form_1096_2 循环中的第三种形式:cred_form_1096_3

等等

表单的数量是动态的,因为它是一个循环,根据某些参数返回某些内容。 循环中可能只有 3 个表单,改天可能有 5 个,因为发布了一些新帖子。

当点击“提交”时,我使用这个 jQuery 通过 AJAX 发送表单:

jQuery(document).ready(function()  
jQuery('#cred_form_1096_1').ajaxForm(function()  
    alert("Thank you for your comment!"); 
); 
); 

当然,以上仅适用于循环中的第一个表单,循环中的第二个表单和第三个等,我每次都需要手动调整 ID! (#cred_form_1096_2、#cred_form_1096_3 等)

有没有办法(例如)使用类似的东西: #cred_form_1096_$?

意思是,Form ID 中的最后一个数字应该根据 Loop 中的表单进行调整。

或者更好的是,它应该在最后一个位置“使用”任何数字 比如:cred_form_1096_any

如果是循环中的第一个表单,则使用 cred_form_1096_1,如果是第二个,则使用 cred_form_1096_2,以此类推

完全不确定这是否可以做到?

欢迎提出任何意见。

更新::

这里的第一个答案很有魅力,我相信其他人也一样!

jQuery(document).ready(function()  
jQuery("[id^=cred_form_1096]").ajaxForm(function()  
    alert("Thank you for your comment!"); 
); 
); 

我现在用("[id^=PART_OF_ID]")

【问题讨论】:

您可以添加一个 CSS 类并在整个类中循环 好吧,我不确定我是否理解,不幸的是!抱歉,我是 JS/AJAX 等方面的初学者。我应该如何进行?在我的编辑表单中添加一个类(让我们说提交按钮),然后在 jQuery 中使用这个类作为#id? $(".cssClass")你可以循环使用这个类的元素 【参考方案1】:

嗯,

您应该考虑使用属性选择器来实现这一点。

您可以定位 f.e. id 以 PART_OF_ID 开头的表单:

$("[id^=PART_OF_ID]").ajaxForm(function ()  ...

您还可以查找包含 (*=) 或以 ($=) 的 ID/类/类型 f.e. 的已知部分结尾的所有元素。

【讨论】:

五分钟后我会接受你的回答,并用解决方案更新我的问题(基于你的建议)谢谢 不客气 =) 在处理生成的标记时,这些选择器非常有用。 出于好奇,你能举一个你提到的两种可能性的例子吗? (寻找所有包含 (*=) 或以 ($=) ID/class/type fe 的已知部分结尾的元素)我不知道如何为这些实现代码,我相信它们会派上用场未来!! 我明白了,所有基本改变的是 id^、id$ 和 id*。完美,谢谢 好的,现在我可能过度使用了你的帮助,但也许你在这里有想法:[我现在只能以 90 分钟的形式发布 :(] 将尽快在此处更新。关于“如何在提交后显示帖子而不重新加载页面 (AJAX)"【参考方案2】:

假设 i 是一个增量值。你可以这样做:

$('#cred_form_1096_'+i)

【讨论】:

出于某种奇怪的原因,这对我来说不起作用,尽管它会产生(逻辑)意义! 你的意思是,我必须先声明什么是“i”,然后按照你上面的方式使用它?所以,例如, i=1 ? 是的。上面的示例假设 i 已经有一个值,每次循环代码时都会增加。这可以简单地通过在循环开始之前定义 i 来实现,然后在循环内使用 i++。

以上是关于在重复表单上使用 jQUERY,随后会增加 ID的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 克隆表单增加 name、class、id、data-id ..etc 的所有属性

Jquery确定表单字段是不是[重复]

jquery - 按名称访问表单输入字段[重复]

jquery miniui新增表单时,某一项值是动态增加的怎么实现

JQuery - 动态添加Html后,如何使CSS生效,JS代码可用?

jquery ajax 放在重复点击事件beforeSend方法