Статьи

jQuery: кратко: HTML-формы и jQuery

Используя jQuery, вы можете легко отключить элементы формы, установив для отключенного значения атрибута элемента формы значение «отключено». Чтобы сделать это, мы просто выбираем вход, а затем, используя метод attr() , устанавливаем для атрибута disabled значения input, равного disabled.

01
02
03
04
05
06
07
08
09
10
11
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input name=»button» type=»button» id=»button» value=»Click me»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function ($) {
      $(‘#button’)
            .attr(‘disabled’, ‘disabled’);
  })(jQuery);
</body>
</html>

Чтобы включить отключенный элемент формы, мы просто удаляем отключенный атрибут с помощью removeAttr() или устанавливаем пустое значение атрибута с помощью attr() .

01
02
03
04
05
06
07
08
09
10
11
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input name=»button» type=»button» id=»button» value=»Click me» disabled=»disabled»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function($){ $(‘#button’).removeAttr(‘disabled’);
            // or
      // $(‘#button’).attr(‘disabled’, »);
  })(jQuery);
</body>
</html>

С помощью выражений фильтра форм jQuery :disabled или :enabled, довольно легко выбрать и определить (логическое значение), отключен или включен элемент формы. Изучите код ниже для уточнения.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input name=»button» type=»button» id=»button1″>
    <input name=»button» type=»button» id=»button2″ disabled=»disabled»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function ($) {
      // Is it enabled?
      alert($(‘#button1’).is(‘:enabled’));
      // Or, using a filter
      alert($(‘#button1:enabled’).length);
      // Is it disabled?
      alert($(‘#button2’).is(‘:disabled’));
      // Or, using a filter
      alert($(‘#button2:disabled’).length);
  })(jQuery);
</body>
</html>

Вы можете выбрать переключатель или установить флажок, установив для его атрибута true значение true с помощью attr() .

01
02
03
04
05
06
07
08
09
10
11
12
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input name=»» value=»» type=»checkbox»>
    <input name=»» value=»» type=»radio»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function($){
      // Set all check boxes or radio buttons to selected
      $(‘input:checkbox,input:radio’).attr(‘checked’, ‘checked’);
  })(jQuery);
</body>
</html>

Чтобы очистить ввод переключателя или флажок, просто удалите проверенный атрибут с помощью метода removeAttr() или задайте для значения checked атрибута пустую строку.

01
02
03
04
05
06
07
08
09
10
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input name=»» type=»checkbox» value=»Test1″ checked=»checked»>
    <input name=»» type=»radio» value=»Test2″ checked=»checked»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function($){ $(‘input’).removeAttr(‘checked’);
  })(jQuery);
</body>
</html>

Вы можете использовать val() jQuery val() на нескольких входах переключателей или переключателях, чтобы установить входы на флажок. Это делается путем передачи в метод val() массива, содержащего строку, совпадающую с атрибутом входного значения переключателя или переключателя.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input type=»radio» value=»radio1″>
    <input type=»radio» value=»radio2″>
    <input type=»checkbox» value=»checkbox1″>
    <input type=»checkbox» value=»checkbox2″>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function($){
      // Check all radio and check box inputs on the page.
      $(‘input:radio,input:checkbox’).val([‘radio1’, ‘radio2’, ‘checkbox1’, ‘checkbox2’]);
      // Use explicit iteration to clear.
      // $(‘input:radio,input:checkbox’).removeAttr(‘checked’);
      // or
      // $(‘input:radio,input:checkbox’).attr(‘checked’, »);
  })(jQuery);
</body>
</html>

Примечания: Если флажок или переключатель уже установлен, использование val() не очистит элемент ввода.


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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input checked=»checked» type=»checkbox»>
    <input checked=»checked» type=»radio»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function($){
      // Alerts «true»
      alert($(‘input:checkbox’).is(‘:checked’));
      // Or, added to wrapper set if checked.
      alert($(‘input:checkbox:checked’).length);
      // Alerts «true»
      alert($(‘input:radio’).is(‘:checked’));
      // Or, added to wrapper set if checked.
      alert($(‘input:radio:checked’).length);
  })(jQuery);
</body>
</html>

Вы можете определить, скрыт ли элемент формы, используя :hidden фильтр формы. Изучите код, приведенный ниже, для нескольких случаев использования фильтра :checked .

01
02
03
04
05
06
07
08
09
10
11
12
13
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input type=»hidden»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function ($) {
      // Alerts «true»
      alert($(‘input’).is(‘:hidden’));
      // Or, added to wrapper set if hidden.
      alert($(‘input:hidden’).length);
  })(jQuery);
</body>
</html>

Метод val() может использоваться для установки и получения значения атрибута элемента ввода (кнопка, флажок, скрытый, изображение, пароль, радио, сброс, отправка, текст). Ниже я устанавливаю значение для каждого входа в val() а затем оповещаю о значении, используя метод val() .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input type=»button»>
    <input type=»checkbox»>
    <input type=»hidden»>
    <input type=»image»>
    <input type=»password»>
    <input type=»radio»>
    <input type=»reset»>
    <input type=»submit»>
    <input type=»text»>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function ($) {
      $(‘input:button’).val(‘I am a button’);
      $(‘input:checkbox’).val(‘I am a check box’);
      $(‘input:hidden’).val(‘I am a hidden input’);
      $(‘input:image’).val(‘I am an image’);
      $(‘input:password’).val(‘I am a password’);
      $(‘input:radio’).val(‘I am a radio’);
      $(‘input:reset’).val(‘I am a reset’);
      $(‘input:submit’).val(‘I am a submit’);
      $(‘input:text’).val(‘I am a text’);
      // Alerts input’s value attribute
      alert($(‘input:button’).val());
      alert($(‘input:checkbox’).val());
      alert($(‘input:hidden’).val());
      alert($(‘input:image’).val());
      alert($(‘input:password’).val());
      alert($(‘input:radio’).val());
      alert($(‘input:reset’).val());
      alert($(‘input:submit’).val());
      alert($(‘input:text’).val());
  })(jQuery);
</body>
</html>

Используя метод val() , вы можете установить выбранное значение элемента <select> , передав методу val() строку, представляющую значение, присвоенное элементу <option> .

Чтобы получить значение элемента <select> , снова используйте метод val() чтобы определить, какая опция выбрана. Метод val() в этом сценарии возвращает значение атрибута выбранного параметра.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang=»en»>
<body>
    <select id=»s» name=»s»>
        <option value=»option1″>option one</option>
        <option value=»option2″>option two</option>
    </select>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function ($) {
      // Set the selected option in the select element to «option two»
      $(‘select’).val(‘option2’);
      // Alerts «option2»
      alert($(‘select’).val());
  })(jQuery);
</body>
</html>

Используя метод val() мы можем установить выбранные значения элемента множественного выбора, передав методу val() массив, содержащий соответствующие значения.

Чтобы получить выбранные параметры в элементе множественного выбора, мы снова используем метод val() для получения массива выбранных параметров. Массив будет содержать значения атрибутов выбранных опций.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang=»en»>
<body>
    <select size=»4″ multiple=»multiple»>
        <option value=»option1″>option one</option>
        <option value=»option2″>option two</option>
        <option value=»option3″>option three</option>
        <option value=»option4″>option four</option>
    </select>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function($){
      // Set the value of the selected options
      $(‘select’).val([‘option2’, ‘option4’]);
      // Get the selected values
      alert($(‘select’).val().join(‘, ‘));
  })(jQuery);
</body>
</html>

Вы можете установить содержимое текстового узла элемента <textarea> , передав методу val() текстовую строку, которая будет использоваться в качестве текста. Чтобы получить значение элемента <textarea> , мы снова используем метод val() для извлечения текста, содержащегося внутри.

01
02
03
04
05
06
07
08
09
10
11
12
13
<!DOCTYPE html>
<html lang=»en»>
<body>
    <textarea></textarea>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function ($) {
      // Set the text contained within
      $(‘textarea’).val(‘I am a textarea’);
      // Alerts «I am a textarea»
      alert($(‘textarea’).val());
  })(jQuery);
</body>
</html>

Вы можете установить атрибут value элемента button, передав методу val() текстовую строку. Чтобы получить значение элемента кнопки, снова используйте метод val() для получения текста.

01
02
03
04
05
06
07
08
09
10
11
12
13
<!DOCTYPE html>
<html lang=»en»>
<body>
    <button>Button</button>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function ($) {
      // Set the value: <button value=»I am a Button Element»>
      $(‘button’).val(‘I am a Button Element’)
      // Alerts «I am a Button Element»
      alert($(‘button’).val());
  })(jQuery);
</body>
</html>

jQuery делает некоторые общие задачи, связанные с редактированием выбранных элементов, тривиальными. Ниже приведены некоторые из этих задач с закодированными примерами.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Add options to a select element at the end
$(‘select’).append(‘<option value=»»>option</option>’);
// Add options to the start of a select element
$(‘select’).prepend(‘<option value=»»>option</option>’);
// Replace all the options with new options
$(‘select’).html(‘<option value=»»>option</option><option value=»»>option</option>’);
// Replace items at a certain index using the :eq() selecting filter to
// select the element, and then replace it with the .replaceWith() method
$(‘select option:eq(1)’).replaceWith(‘<option value=»»>option</option>’);
// Set the select elements’ selected option to index 2
$(‘select option:eq(2)’).attr(‘selected’, ‘selected’);
// Remove the last option from a select element
$(‘select option:last’).remove();
// Select an option from a select element via its
// order in the wrapper set using custom filters
$(‘#select option:first’);
$(‘#select option:last’);
$(‘#select option:eq(3)’);
$(‘#select option:gt(5)’);
$(‘#select option:lt(3)’);
$(‘#select option:not(:selected)’);
// Get the text of the selected option(s), this will return the text of
// all options that are selected when dealing with a multi-select element
$(‘select option:selected’).text();
// Get the value attribute value of an option in a select element
$(‘select option:last’).val();
// Get the index (0 index) of the selected option.
// Note: Does not work with multi-select elements.
$(‘select option’).index($(‘select option:selected’));
// Insert an option after a particular position
$(‘select option:eq(1)’).after(‘<option value=»»>option</option>’);
// Insert an option before a particular position
$(‘select option:eq(3)’).before(‘<option value=»»>option</option>’);

Можно выбирать элементы формы по их типу, например, $('input:checkbox') . jQuery предоставляет следующие фильтры типов форм для выбора элементов формы по их типу.

  • :text
  • :password
  • :radio
  • :checkbox
  • :submit
  • :image
  • :reset
  • :file
  • :button

Вы можете выбрать все элементы формы, используя :input фильтр формы :input . Этот фильтр будет выбирать не только элементы ввода, но и любые элементы <textarea> , <select> или <button> . В приведенном ниже кодированном примере обратите внимание на длину набора оболочек при использовании :input фильтра.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html lang=»en»>
<body>
    <input type=»button» value=»Input Button»>
    <input type=»checkbox»>
    <input type=»file»>
    <input type=»hidden»>
    <input type=»image»>
    <input type=»password»>
    <input type=»radio»>
    <input type=»reset»>
    <input type=»submit»>
    <input type=»text»>
    <select>
        <option>Option</option>
    </select>
    <textarea></textarea>
    <button>Button</button>
    <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js»></script>
    <script> (function($){
      // Alerts «13» form elements
      alert($(‘:input’).length);
  })(jQuery);
</body>
</html>