Как скрыть поле в форме с помощью jQuery

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

    }
}

}

однако, глядя на рассматриваемый элемент, который нужно скрывать, он не идет никуда. Мой основной путь, который я принимаю, является :: Записан как "editor" (admin privilages) → Содержание → Исполнитель → "Изменить". В этот момент появляется световой блок (?) С полями для заполнения, чтобы человек мог добавлять контент. Что мне не хватает..?

EDIT: Исправлена пропавшая часть $ (document), но все же не скрывала это поле.

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

Теги:
drupal

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

    }
0

Где у вас есть эта строка...

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

Попробуйте использовать jQuery "скрыть" способность...

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

Кроме того, способ CSS не работает, потому что у вас есть точка с запятой после "none". Не нужно быть там.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню