如何使用jQuery隐藏表单上的字段


How to hide a field on a form with jQuery

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

/**
*  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;');});"
        );
    }
}
}

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

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

图像:: https://i.stack.imgur.com/IWDZw.jpg

你有这条线...

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

尝试利用jQuery"隐藏"功能...

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

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

也许你应该动态绑定这个事件,在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;');});"
        );
    }