Как использовать jQuery для предотвращения ввода пробела клавишей пробела?
Я подумал, что было бы просто перехватить клавишу пробела при вводе формы, чтобы она работала как дефис. Обычно jQuery делает такие вещи очень простыми.
Код, который я пробовал это:
$("#StreamUrl").keydown(function (e) {
if (e.keyCode == 32) return 109;
});
Но это никак не влияет. Я попробовал более простой скрипт:
$("#StreamUrl").keydown(function (e) {
//if (e.keyCode == 32) return 109;
alert(e.keyCode);
});
Этот скрипт правильно предупреждает 32 при пробелах и 109 при дефисе. Кроме того, у меня нет ошибок JavaScript.
Почему бы неif (e.keyCode == 32) return 109;
Работа? Когда я заменяю эту строкуif (e.keyCode == 32) alert("space!!");
Я получаю предупреждение правильно, поэтому я знаюif
возвращаетсяtrue
правильно.
Что дает?
Редактировать - РешениеСпасибо @Nick за указание на проблему копирования и вставки. Я закончил с небольшим количеством гибрида. Вот код, который я получил для работы, который является гладким и обрабатывает Копировать / Вставить.
$("#StreamUrl").keydown(function (e) {
if (e.keyCode == 32) {
$(this).val($(this).val() + "-"); // append '-' to input
return false; // return false to prevent space from being added
}
}).change(function (e) {
$(this).val(function (i, v) { return v.replace(/ /g, "-"); });
});