Статьи

Потрясающие фрагменты jQuery для работы с формами

Формы, безусловно, очень важная часть веб-сайта, но они также могут быть немного сложными в обращении. Чтобы облегчить вам работу с HTML-формами, я собрал несколько очень полезных фрагментов кода jQuery из моей личной библиотеки фрагментов в этой статье.

Отключите «ввод» ключ в ваших формах

Если вы хотите запретить посетителям случайно отправлять вашу форму, нажав клавишу «Ввод», вы можете использовать этот фрагмент, чтобы отключить использование клавиши «Ввод» в ваших формах.

$("#form").keypress(function(e) {
  if (e.which == 13) {
    return false;
  }
});

Источник: http://www.catswhocode.com/blog/10-awesome-jquery-snippets

Очистить данные формы

Нужно очистить все данные формы? Вот удобная функция для этого.

function clearForm(form) {
 // iterate over all of the inputs for the form
 // element that was passed in
 $(':input', form).each(function() {
  var type = this.type;
  var tag = this.tagName.toLowerCase(); // normalize case
  // it's ok to reset the value attr of text inputs,
  // password inputs, and textareas
  if (type == 'text' || type == 'password' || tag == 'textarea')
    this.value = "";
  // checkboxes and radios need to have their checked state cleared
  // but should *not* have their 'value' changed
  else if (type == 'checkbox' || type == 'radio')
    this.checked = false;
  // select elements need to have their 'selectedIndex' property set to -1
  // (this works for both single and multiple select elements)
  else if (tag == 'select')
    this.selectedIndex = -1;
 });
};

Источник: http://www.jquery4u.com/forms/jquery-function-clear-form-data/#.UI02J2knDF8

Найти это флажок проверен

Узнайте, установлен ли один флажок или нет. Функция вернет trueили false:

$('#checkBox').attr('checked');

Источник: http://jquery-howto.blogspot.be/2008/12/how-to-check-if-checkbox-is-checked.html

Включить / отключить элементы формы

Хотите сделать ваши формы более удобными для пользователя? Затем вы можете включить или отключить элементы формы, такие как кнопка отправки. Например, вы можете отключить его по умолчанию и включить его, только если посетитель заполнил форму должным образом.

$("#submit-button").attr("disabled", true);

И чтобы снова включить ранее отключенный ввод:

$("#submit-button").removeAttr("disabled");

Источник: http://css-tricks.com/snippets/jquery/disable-re-enable-inputs/

Включить кнопку отправки, если текст введен

Вот вариант приведенного выше фрагмента, на этот раз позволяющий автоматически включить кнопку отправки, если в #usernameполе ввода введен какой-либо текст .

$('#username').keyup(function() {
    $('#submit').attr('disabled', !$('#username').val()); 
});

Источник: http://cakebaker.42dh.com/2009/01/13/enabling-submit-button-if-text-entered/

Отправить форму программно

Очень просто, но определенно полезно: вот как программно отправить форму с помощью jQuery.

$("#myform").submit();

Источник: http://www.jquery4u.com/snippets/jquery-simulate-form-submit/

Запретить многократную отправку вашей формы

Многократные представления одной и той же формы, безусловно, являются одной из наиболее распространенных проблем при работе с веб-формами. Вот супер полезный кусок кода, чтобы предотвратить несколько представлений одной и той же формы.

$(document).ready(function() {
  $('form').submit(function() {
    if(typeof jQuery.data(this, "disabledOnSubmit") == 'undefined') {
      jQuery.data(this, "disabledOnSubmit", { submited: true });
      $('input[type=submit], input[type=button]', this).each(function() {
        $(this).attr("disabled", "disabled");
      });
      return true;
    }
    else
    {
      return false;
    }
  });
});

Источник: http://damienalexandre.fr/post/2009/08/02/jQuery-eviter-la-soumission-multiple-d-un-formulaire

Выделите связанную метку при вводе в фокусе

Еще один способ упростить заполнение вашей формы для посетителей: выделите связанные метки, когда вводите в фокусе. Вот несколько полезных jQuery, чтобы помочь.

$("form :input").focus(function() {
  $("label[for='" + this.id + "']").addClass("labelfocus");
}).blur(function() {
  $("label").removeClass("labelfocus");
});

Источник: http://css-tricks.com/snippets/jquery/highlight-related-label-when-input-in-focus/

Динамически добавлять элементы формы

Если вам нужно динамически добавлять элементы формы, приведенный ниже фрагмент кода представляет собой простой способ сделать это.

//change event on password1 field to prompt new input
$('#password1').change(function() {
 //dynamically create new input and insert after password1
 $("#password1").append("<input type='text' name='password2' id='password2' />");
});

Источник: http://www.jquery4u.com/forms/jquery-dynamically-add-form-elements/

Автоматическое заполнение полей выбора с помощью Ajax & JSON

При создании интерактивной формы очень полезно иметь возможность получать некоторые данные с помощью ajax и использовать их для заполнения элемента select.
В следующем фрагменте показано, как получить данные из php-файла с именем select.php(строка 3) и заполнить его элементом select.

$(function(){
  $("select#ctlJob").change(function(){
    $.getJSON("/select.php",{id: $(this).val(), ajax: 'true'}, function(j){
      var options = '';
      for (var i = 0; i < j.length; i++) {
        options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
      }
      $("select#ctlPerson").html(options);
    })
  })
})

Источник: http://remysharp.com/2007/01/20/auto-population-select-boxes-using-jquery-ajax/