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

时间:2013-09-22 14:22:34

标签: php jquery drupal

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

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

    }
}

}

然而,当查看需要隐藏的问题元素时,它不会去任何地方。我正在采取的基本路径是::以“编辑器”(admin privilages)登录 - >内容 - >艺术家 - > “编辑”。此时,弹出一个灯箱(?),其中填写字段以允许人与人添加到内容中。我错过了什么..?

编辑:修复了丢失的$(文档)部分,但仍未隐藏字段。

Img :: http://imgur.com/sP2OlNg

2 个答案:

答案 0 :(得分:0)

你有这条线......

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

尝试使用jQuery“隐藏”功能...

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

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

答案 1 :(得分: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;');});"
        );

    }