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

このイベントを動的にバインドする必要があるかもしれません.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 に答える
0

この線があるところ...

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

jQueryの「非表示」機能を利用してみてください...

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

また、「none」の後にセミコロンがあるため、CSS の方法は機能しません。そこにいる必要はありません。

于 2013-09-22T15:14:33.560 に答える