添加CSS和JS以形成附件 -- 7 领域 和 forms 领域 drupal 相关 的问题

Adding CSS and JS to form with attachments


39
vote

问题

中文

我需要将一些外部和本地CSS和JavaScript文件添加到表单中,但我似乎无法找到正确的方法。我只需为JS和CSS文件添加路径和URL?

我假设 $form['#attached']['css'][] $form['#attached']['js'][] 是正确的代码,所以他们在形式重建时得到重新加载。我似乎错过了一些东西。

英文原文

I need to add some external and local CSS and JavaScript files to a form, but I can't seem to find the right way to do this. Do I simply add the paths and URLs for the JS and CSS files?

I assume $form['#attached']['css'][] and $form['#attached']['js'][] are the correct places to do this, so they get reloaded on form rebuilds. I seem to be missing something.

     

回答列表

73
 
vote
vote
最佳答案
 

你看过文档吗?

附加CSS和JS以形成

http://api.drupal.org/ API / Drupal / Developer!主题!forms_api_reference.html / 7#附加

  $form['#attached']['css'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.css';  $form['#attached']['js'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.js';   

外部文件

http://api.drupal.org/ API / drupal /包含%21Common.inc / function / drupal_process_attached / 7

外部'js'和'css'文件也可以加载。例如:

  $build['#attached']['js']['http://code.jquery.com/jquery-1.4.2.min.js'] = array('type' => 'external');   
 

Have you looked at the documentation?

Attach CSS and JS to form

http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#attached

$form['#attached']['css'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.css';  $form['#attached']['js'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.js'; 

External files

http://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_process_attached/7

External 'js' and 'css' files can also be loaded. For example:

$build['#attached']['js']['http://code.jquery.com/jquery-1.4.2.min.js'] = array('type' => 'external'); 
 
 
         
         
11
 
vote

这是添加内联css 的方法...

  $form['#attached']['css'][] = array(   'data' => '.my-example-element { display: none; }',   'type' => 'inline', );   

请注意,您应该将添加到CSS阵列而不是替换它。意思是您应该使用: ['css'][] = 而不是 ['css'] = ,避免挤压其他添加。

 

Here's the method for adding inline CSS to forms...

$form['#attached']['css'][] = array(   'data' => '.my-example-element { display: none; }',   'type' => 'inline', ); 

Note that you should add to the css array rather than replace it. Meaning you should use: ['css'][] = rather than ['css'] = to avoid squashing other additions.

 
 
   
   
6
 
vote

这里是这样做的一种方式。使用 // Alter regular search box function YOURMODULENAME_form_alter(&$form, &$form_state, $form_id) { if($form["#id"] == 'search-block-form') { // Add any additional fields or things you need here ... // Modify the submit handler that is called $form['#submit'] = array('YOUR_CUSTOM_search_submit'); } } 0 属性调用函数。刚刚在Switch Case中的表单ID传递。

  // Alter regular search box function YOURMODULENAME_form_alter(&$form, &$form_state, $form_id) {   if($form["#id"] == 'search-block-form') {     // Add any additional fields or things you need here      ...      // Modify the submit handler that is called     $form['#submit'] = array('YOUR_CUSTOM_search_submit');   } } 1  

也可以遵循这个好的教程添加CSS和JS到Drupal Forms

希望这有帮助。 :)

 

Here is one way to do this that is via. calling a function using #after_build property. Just pass in your form id in switch case.

function mymodule_form_alter(&$form, &$form_state, $form_id) {   switch ($form_id) {     case 'my_form':       $form['#after_build'][] = 'mymodule_after_build';       break;   } }  function mymodule_after_build($form, &$form_state) {   $path = drupal_get_path('module', 'mymodule');   drupal_add_js ("$path/mymodule.js");   return $form;  } 

Also you can follow this good tutorial Adding css and js to drupal forms

Hope this helps. :)

 
 
     
     

相关问题

-2  如何在没有模块的情况下在我的网站中添加关键字? [关闭]  ( How can i add keywords in my site without module ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,以便仅通过编辑此帖子的一个问题。 关闭 7年前。 ...

1  拥有自己的主题来创建和编辑节点:没有WYSIWYG编辑器  ( Having my own theme for creating and editing nodes no wysiwyg editor ) 
i禁用该选项"编辑或创建内容时使用管理主题" ,因此我会看到默认主题中的所有内容。 但现在我出现了一个问题:js drupal对象位于页面的底部(如通常的页面中所有js文件应该在底部)。 但CKEditor(我正在使用的)需要头部对象。 //更新:我检查了脚本并发现,该脚本托运人在所有脚本的顶部执行。另一方面的...

0  以编程方式在自定义表单中添加现有实体引用自动完成字段  ( Programmatically add an existing entity reference autocomplete field in custom f ) 
我需要创建自定义表单并将实体参考字段添加到它。该字段使用自动填充功能,查看实体选择。该字段已存在于节点上,但我也需要它在自定义模块中。是否有一种方法可以在带有 MYMODULE_MYFORM_form() 的自定义模块中添加此字段?? ...

0  文章评论中没有“pagination”  ( No pagination on article comments ) 
好的,我在D7上并使用默认的Bartik主题。我将内容类型文章设置为每页10的评论,线程。我发布了一个测试文章并开始评论测试寻呼,当我超过每页10的设置限制时,该文章只显示前10个注释,我没有看到"更多" 或"下一页" 或任何链接到评论的第二页。 我没有触摸任何PHP或CSS。 ...

3  JavaScript装载订单  ( Javascript loading order ) 
我在几个项目中安装了eu-cookie-compliance模块,它的到处都是预期的,但在一个项目中,我在正确的顺序上加载JavaScript有问题。 即使我实现了Hook_JS_ALTER并设置了较高的权重,即使在MISC / DRUPAL.JS和MISC / jQuery.js之前加载了eu-Compliance...

1  分类学术语的“管理显示”不允许管理名称字段  ( Manage display for taxonomy term does not allow management of the name field ) 
与相关的图像有一个分类。它应该用图像显示,没有标题。但是,进入此分类系统的"管理显示" 部分,根本不会显示名称字段。 搜索这已被证明是徒劳的。我可以通过修改显示代码来手动删除它,但是,留下无法从CMS更改其显示的方法。 为什么姓名不能作为显示的一部分可管理? 有些方法可以管理包括名称的分类学术语显示? ...

0  php以显示内容是否在分类术中具有新的评论.TPL.php?  ( Php to show if content has new comments in taxonomy term tpl php ) 
是可以将一些php添加到分类学 - term.tpl.php,它将看起来,看看是否有任何标记为术语的内容是否有新的评论,如果是这样打印HTML中的内容? ...

0  基于Solr的建议模块  ( Module for recommendations based on solr ) 
我想询问是否有建议(产品,节点等)的模块 基于solr。 我已经搜索了drupal.org,我找到了内容推荐模块,这一点使用solr列出任何模块。 ...

0  生日迁移到Profile2  ( Birthdays migrate to profile2 ) 
家伙。 我这个问题,我确实从CSV文件中迁移了一个用户列表,并将迁移模块迁移到Profile2。我将使用Import的一个唯一值与FORMAT DD / MM / Y进行。一切都很好,但最后,生日场是空的。 导入(更新)我的用户生日的正确方法是什么。 谢谢! ...

2  未显示上传的文件[已关闭]  ( Uploaded files arent displayed ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 关闭 3年前。 ...

0  FancyBox模块错误消息  ( Fancybox module error messages ) 
我启用了FancyBox模块,但是由于这样做即可获取以下错误消息: Notice: Undefined index: options in _fancybox_filter_settings() (line 559 of /home/mysite/public_html/sites/all/modules/fan...

0  用户关系请求在具有接受和拒绝链接的视图块中  ( User relationship requests in a view block with accept and decline links ) 
我有一个节点,其中我想要向用户展示所有关系请求当前用户已经接收到下面的状态链接,以便用户可以接受或拒绝请求,然后在不需要转到的情况下无聊的Drupal默认用户关系页面。我显然是使用用户关系模块为此目的。无论如何,我举行了创建一个观点,但在滋补足够后,我无法这样做。我能做的就是获得所有关系请求的列表(也是由登录用户制作...

2  有没有办法在悬停在它的链接上时动态地显示页面?  ( Is there a way to show a page dynamically when hovering on its link ) 
只是想知道是否有模块或某种方式一般来说,执行以下操作: 在页面链路上悬停时,将该页面的内容显示为工具提示或某种小型下拉窗口。 谢谢。 ...

0  进度栏预付款,操作没有  ( Progress bar advances operations does nothing ) 
我正在尝试创建批量来导入用户。我使用了这个( http://pastebin.com/dutbxpgd )作为一个例子,但不知何故它不起作用。我看到进度条推进,它显示了我正在处理的正确行数。但是我在操作功能中尝试做什么。 这是我的代码: function form_submit($form, &$form_sta...

0  WEBForm单选按钮设置常用功能  ( Webform radio button sets common functionality ) 
我有2套具有不同数据的单选按钮,因为它们是无线电,只能选择每个设置的单个选项。 但是,我试图实现一个设置,它只能在2组无线电之间选择一个选择。 因此,如果我在set#2中选择一个选项,则将取消选择#1中的任何先前选择的选项,反之亦然。 有人可以帮助这个吗? ps:我知道JavaScript应该满足这种需求,但...

0  如何将菜单项链接到Drupal7中的页面,可以显示数据库内容?  ( How to link menu item to a page in drupal7 that can display database content ) 
我在my drupal7中使用自定义模块,以在表单中添加数据,然后将其插入数据库中。表单有像"菜单名称" ,"图像" 等的字段我想知道: 如何通过单击每个菜单项在我的网站上显示此动态内容? 换句话说,如何将动态内容链接到菜单项?菜单项的名称将等于我自定义模块中的表单中的字段(菜单名称)之一。每个菜单项页面都可以具...

1  术语视图中的内容的关系会导致重复和缺少结果  ( Relationship to content in term view causes duplicate and missing results ) 
我有这些术语,节点和评论。所以'nodea'和'nodeb'被标记为"term1" 。 "Nodea" 和'NodeB'都有新的评论。 Term1 -NodeA (has new comments) -NodeB (has new comments) Term2 -NodeC (no new comments...

0  小电子商务:1+卖家,通过PayPal付款基于卖家配置  ( Little ecommerce 1 seller payment via paypal based on seller configuration ) 
我需要创建一个小型电子商务网站,我可以拥有多个卖家,但付款是通过PayPal进行的,卖方的数据。 我不能在我的购物车中有不同的卖家(这是可以的)不同的产品。 是有点小电子商务模块吗?如果可能,我不想使用Drupal Commerce或Ubercart。 我可以使用哪个模块? ...

0  是否停用模块安全的设置?  ( Is deactivating modules safe regarding settings ) 
在甚至在激活模块之前将模块上传到共享主机服务器后,我有一个奇怪的错误,甚至在激活模块(image_desaturate_formatter)之前。 porpexception:sqlstate [23000]:Integrity Constraint违规:1062复制条目的站点/全部/模块/ image_desa...

2  当用户第一次登录我的网站时,我如何有一个视频弹出窗口? [关闭]  ( How can i have a video pop up when a user logs into my site for the first time ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,以便仅通过编辑此帖子。 关闭 1年前。 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.