【问题标题】:Ajax trigger live and dynamic formAjax 触发实时动态表单
【发布时间】:2017-09-17 17:02:55
【问题描述】:

假设我有这样的代码:

<div id="stuff<? echo $dynID; ?>" class="bla">
 <form id="myform<? echo $dynID; ?> " action="bla.php">
    <input name="iname<? echo $dynID; ?>" value="<? echo $row[1]; ?>">
 </form>
</div>

<div id="stuff<? echo $dynID; ?>" class="bla">
 <form id="myform<? echo $dynID; ?> " action="bla.php">
    <input name="iname<? echo $dynID; ?>" value="<? echo $row[1]; ?>">
 </form>
</div>

<div id="stuff<? echo $dynID; ?>" class="bla">
 <form id="myform<? echo $dynID; ?> " action="bla.php">
    <input name="iname<? echo $dynID; ?>" value="<? echo $row[1]; ?>">
 </form>
</div>

多种形式。在本例中为 3。(可能或多或少)

如何触发此表单(使用 AJAX 发送 ist)?此表单是实时 AJAX 生成的内容并具有动态 ID。我现在没有触发表单的特定ID,例如:

$("#myform").submit(function(event) {

怎么办?

【问题讨论】:

  • 您的页面中是否有多个具有动态 ID 的表单?
  • 如果您不知道 ID 或至少其他一些识别目标表单的方法,您总是会遇到困难。
  • 是的,我有多个带有动态 ID 的表单。

标签: javascript jquery ajax live


【解决方案1】:

我们可以使用更多信息来进一步提供帮助,例如,与其他表单相比,此表单(其中任何一个)中的文本是否独一无二?您基本上可以通过任何方式来定位它,甚至可以结合这些条件。例如,如果 action 属性是唯一的,您总是可以这样做(未经测试):

//if the form id starts with 'myform', perform a function on submit
$("form[id^='myform']").submit(function(event) {
    //if that form's 'action' attribute is 'bla.php', then do something
    if($('form').attr('action', 'bla.php')){
        //your code here
    }
});

编辑: 这是独一无二的,足以抓住它吗?我让它依赖于它上面的 div,它的 id 以“stuff”开头,该 div 还必须有类“bla”,并且“action”的表单属性必须是“bla.php”

$("div[id^='stuff'] form[id^='myform']").submit(function(event) {
    if($(this).parent().hasClass('bla')) {
        if($(this).attr('action', 'bla.php')){
            //your code here
        }
    }
});

【讨论】:

  • 我编辑了问题中的代码以显示表单中的内容。
  • 在 bla.php 上执行每一个表单。
  • 它的用途是:我遍历数据库并写出行。假设:我有 4 种不同的动态 ID 表格。我需要编辑功能的表单。
  • 我已经编辑了我的答案,但是如果每个表格都与动态id结尾的豁免相同,那就有点困难了。
  • 问题是:“[id^='stuff']”、“[id^='myform']”和“('action', 'bla.php')”是真的浏览页面上的每个表单。
猜你喜欢
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
  • 2022-08-23
  • 1970-01-01
相关资源
最近更新 更多