Закачане на js и css към форма


Задаване на стойност по подразбиране, които се изчистват при фокус на input с js:

  1. login_nsni.png
  2. newsletter_block.png
  3. feedback-form.png
(function($){
  Drupal.behaviors.nsni_ext = {
    attach: function(context) {
      $('input[name$="name"]').val(Drupal.t('User'));
      $('input[name$="pass"]').val(Drupal.t('Password'));
      $('input[name$="name"], input[name$="pass"]').addClass('default-value');
 
      $('.default-value').each(function() {
        var default_value = this.value;
        $(this).focus(function() {
            if(this.value == default_value) {
                this.value = '';
            }
        });
        $(this).blur(function() {
            if(this.value == '') {
                this.value = default_value;
            }
        });
      });
    }
  }
})(jQuery);

Закачане на js файла към формата:

/**
 * Implements hook_form_alter().
 */
function nsni_ext_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_login_block') {
    $form['#attached'] = array(
      'js' => array(
        drupal_get_path('module', 'nsni_ext') . '/misc/nsni-login.js' => array(
          'type' => 'file'
        ),
      ),
    );
}

Закачане на външна js библиотека към форма (selectbox.js):

wf-2.png

резултат на select options от selectbox
wf-2-select-options.png

Selectbox jQuery plugin link:
https://code.google.com/p/select-box/

Drupal code:

/**
 * Implements hook_form_alter().
 */
function nsni_ext_form_alter(&$form, &$form_state, $form_id) {
  if (strstr($form_id, 'webform_client_form_')) {
    //attach custom css and js to webform client form
    $form['#attached'] = array(
      'css' => array(
        drupal_get_path('module', 'nsni_ext') . '/misc/nsni_ext.css' => array(
          'type' => 'file'
        ),
      ),
      'js' => array(
        drupal_get_path('module', 'nsni_ext') . '/misc/selectbox/js/jquery.selectbox-0.2.min.js' => array(
          'type' => 'file'
        ),
        drupal_get_path('module', 'nsni_ext') . '/misc/nsni_select.js' => array(
          'type' => 'file'
        ),
      ),
    );
  }
}