【问题标题】:drupal form trigger add more javascriptdrupal 表单触发器添加更多 javascript
【发布时间】:2013-10-11 16:05:30
【问题描述】:

我有一个带有“添加更多”按钮的字段的节点添加表单。此特定字段需要动态填充。为什么触发 jquery 单击“添加更多”按钮 ($('#edit-field-roof-area-und-add-more').click();) 不起作用?如果我在控制台中这样做,它会返回一个空数组。

在节点添加表单中创建一个或两个字段的最简单方法是什么,我可以从客户端动态添加无限量(值来自 JS 应用程序。)

【问题讨论】:

  • 您是否有示例 jsfiddle 或 codepen,以便我们准确了解您所看到的内容以更好地帮助您?

标签: javascript jquery forms drupal drupal-7


【解决方案1】:

找到了!! jQuery('#edit-field-phone-no-und-add-more').trigger('mousedown') 此外,每次单击按钮时,ID 都会发生变化。

【讨论】:

    【解决方案2】:

    在添加节点时,您可能希望在处理程序中使用上下文:

    $('#edit-field-roof-area-und-add-more', 'body').click();
    

    因为我在加载 DOM 后动态创建了元素.. 尝试一下,因为当页面加载时 body 标签已经存在于 DOM 中

    和/或提供 jsfiddle 或 codepen 示例以更好地帮助您...

    编辑:

    你也可以试试这个 jQuery trigger():

     $('#edit-field-roof-area-und-add-more', 'body').trigger("click");
    

    或 jQuery triggerHandler():

     $('#edit-field-roof-area-und-add-more', 'body').triggerHandler("click");
    

    两者的区别在于triggerHandler不会冒泡DOM

    也有您尝试触发的点击事件处理程序的示例 jsfiddle 或 codepen..

    【讨论】:

    • 你的 JQuery 截图返回 Object[input#edit-field-phone-no-und-add-more.field-add-more-submit attribute value = "Add another item"]stackoverflow.com/q/2788393?rq=1
    • 我确实找回了一些东西,但我不明白为什么浏览器对 javascript/jquery click() 的解释与物理鼠标点击不同。
    • 感谢您的帮助。 .trigger("click"); 返回Object[input#edit-field-phone-no-und-add-more.field-add-more-submit attribute value = "Add another item"],而.triggerHandler("click"); 返回false。就事件处理程序而言,它类似于 $('#edit-field-phone-no-und-0-value').value('variable from JS app');当我单击最终的submit 函数时,它将包含我的其他表单字段。
    • 还没有——我已经环顾了很多地方,但我认为我不能直接做到这一点。我将尝试通过自定义模块和 hook-form-alter 或其他东西来完成它。我还不知道。为什么click() 事件不起作用是没有意义的。
    • 我越来越近了 - 我找到了一个使用直接 Javascript 的网站 - 没有 JQuery。链接是:nonobtrusive.com/2011/11/29/… 它只是重新加载整个浏览器而不是执行 AJAX 事件。
    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多