我有一个表单,我通过 drupal_add_js() 在模块的初始化代码中添加了一个 js 文件。
我看到了第一条调试消息,但我似乎无法从文档中选择任何项目。我只是得到返回的 jQuery 对象。
但是当我将同一行添加到萤火虫中时,它可以工作。
console.log('called => init()');
console.log(jQuery('#quiz-form').find('#edit-next'));
我有一个表单,我通过 drupal_add_js() 在模块的初始化代码中添加了一个 js 文件。
我看到了第一条调试消息,但我似乎无法从文档中选择任何项目。我只是得到返回的 jQuery 对象。
但是当我将同一行添加到萤火虫中时,它可以工作。
console.log('called => init()');
console.log(jQuery('#quiz-form').find('#edit-next'));
如果您尝试从表单元素中检索值,请尝试:
console.log(jQuery('#quiz-form').find('#edit-next').val());
将 jQuery 对象作为返回是非常好的,因为像find
实际返回 jQuery 对象这样的方法。您应该检查作为 return ie 获得的 jQuery 对象的长度console.log(jQuery('#quiz-form').find('#edit-next').length);
。如果长度为零,那么当然找不到元素。在这种情况下,您应该确保在 DOM 准备好之后调用您的 JS 代码,即您应该使用 Drupal 行为包装您的代码jQuery(document).ready
或使用 Drupal 行为。
我偶然发现了它。jQuery 对象试图在页面初始化之前找到选定的对象。
我在想初始化模块中的 drupal_add_js 就足够了。
但是我还必须将 jquery 代码包装在 Dom Ready 函数中......正如我们一直应该做的那样。