Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2014, 14:53
Новичок на форуме
Отправить личное сообщение для SLASH_id Посмотреть профиль Найти все сообщения от SLASH_id
 
Регистрация: 24.11.2014
Сообщений: 8

Вкл./выкл. чекбокса по событию клавиатуры
Здравствуйте.

Имеем классический чекбокс:
<input type="checkbox" name="urgent" value="1" onclick="this.form.invoice.focus()">


Хочу повесить на страничку скрипт который бы отмечал/снмал данный чекбокс по нажатию на определенную клавишу на клавиатуре. К примеру на "s".

Ну и как всегда вопрос: how to?
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2014, 15:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от SLASH_id
Ну и как всегда вопрос: how to?
Ответ, как всегда, в букваре...
http://learn.javascript.ru/keyboard-events
Ответить с цитированием
  #3 (permalink)  
Старый 24.11.2014, 15:16
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

document.addEventListener("keydown", function (event) {

  if (event.keyCode == "код клавиши s") {
    // Ваше действие
  }

}, false)


Думаю что направление гугления задано?
Читайте про события клавиатуры
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2014, 15:16
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var checkbox = document.getElementsByName('urgent')[0];

document.addEventListener('keypress', function(e) {
    if(e.keyCode == 115) checkbox.checked = !checkbox.checked;
});


или

document.addEventListener('keypress', function(e) {
    if(e.keyCode == 115) document.getElementsByName('urgent')[0].checked ^= 1;
});

Последний раз редактировалось ruslan_mart, 24.11.2014 в 15:19.
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2014, 15:38
Новичок на форуме
Отправить личное сообщение для SLASH_id Посмотреть профиль Найти все сообщения от SLASH_id
 
Регистрация: 24.11.2014
Сообщений: 8

Всем спасибо. JS это совсем не мой профиль. Но надо. А надо, как обычно срочно, а лучше вчера.

Собственно запрос о keyboard events и привел меня на этот форум.
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2014, 15:45
Новичок на форуме
Отправить личное сообщение для SLASH_id Посмотреть профиль Найти все сообщения от SLASH_id
 
Регистрация: 24.11.2014
Сообщений: 8

С этим понятно, но как поступать со сложным чекбоксом, который активирует два инпута?
<input type="checkbox" name="bigbox" value="1" onclick="if(this.checked){ldelim}this.form.weight.disabled = false; this.form.units.disabled = false; this.form.weight.focus();{rdelim} else {ldelim}this.form.weight.disabled = true; this.form.units.disabled = true;{rdelim}">


Сделал по аналогии, чекбокс чекается, но инпуты остаются disabled.
Ответить с цитированием
  #7 (permalink)  
Старый 24.11.2014, 15:49
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

document.addEventListener('keypress', function(e) {
    if(e.keyCode == 115) document.getElementsByName('urgent')[0].click();
});
Ответить с цитированием
  #8 (permalink)  
Старый 24.11.2014, 15:53
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

А если по хорошему, то:

<input type="checkbox" name="bigbox">



var checkbox = document.getElementsByName('bigbox')[0];

checkbox.addEventListener('click', function() {
    this.form.weight.disabled = this.form.units.disabled = !this.checked;
    
});

document.addEventListener('keypress', function(e) {
    checkbox.click();
});
Ответить с цитированием
  #9 (permalink)  
Старый 24.11.2014, 16:04
Новичок на форуме
Отправить личное сообщение для SLASH_id Посмотреть профиль Найти все сообщения от SLASH_id
 
Регистрация: 24.11.2014
Сообщений: 8

Руслан, премного вам благодарен.
Воспользовался коротким кодом.
В чем разница если вкратце?
Ответить с цитированием
  #10 (permalink)  
Старый 25.11.2014, 09:00
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Интересно как будет выгдядеть лейбл с мнемокодом, так наверно -

<label>Отправить инво<span style="text-decoration:underline">й</span>c</label>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дважды вызвать нажатие клавиши клавиатуры pictaile Events/DOM/Window 7 12.09.2014 15:27
По событию onmouseover задваевается онимация strengerst Events/DOM/Window 6 31.12.2012 16:27
Перенос id чекбокса в поле input azarubin Общие вопросы Javascript 7 14.01.2011 22:30
Как проверить значение чекбокса KonstantinK Элементы интерфейса 2 17.07.2010 13:30
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17