0

因此,我正在努力隐藏一个输入字段,稍后我计划将其与其他表单字段一起动态加载。我创建了一个小模块来协助这个过程。

/**
*  Implements hook_form_alter().
*/

function editorhide_form_alter(&$form,$form_id){
//form id = artist_node_form
//title id = edit-title label: edit-title

global $user;

if($form_id == 'artist_node_form'){

   if(in_array('editor', $user->roles)){
        drupal_add_js("$(document).ready(function(){
                        $('#edit-title').css('display','none;');});"
        );

    }
}

}

但是,当查看需要隐藏的相关元素时,它不会去任何地方。我正在采取的基本路径是::以“编辑器”(管理员权限)-> 内容-> 艺术家-> “编辑”身份登录。此时会弹出一个灯箱 (?),其中包含要填写的字段,以允许个人对个人添加到内容中。我错过了什么..?

编辑:修复了缺少的 $(document) 部分,但是仍然没有隐藏该字段。

图片:: http://imgur.com/sP2OlNg

4

2 回答 2

0

你在哪里有这条线......

$('#edit-title').css('display','none;');

尝试利用 jQuery“隐藏”能力...

$('#edit-title').hide();

此外,CSS 方式不起作用,因为在“无”之后有一个分号。不需要在那里。

于 2013-09-22T15:14:33.560 回答
0

也许你应该动态绑定这个事件,在 Jquery 1.x 中你可以测试它

if(in_array('editor', $user->roles)){
        drupal_add_js("$(document).live("ready",function(){
                        $('#edit-title').css('display','none;');});"
        );

    }

或在 jquery 2.x 中,

if(in_array('editor', $user->roles)){
        drupal_add_js("$(document)bind('ready', function(){
                        $('#edit-title').css('display','none;');});"
        );

    }
于 2013-09-22T15:16:08.853 回答