У меня есть один text box
и я вхожу данные о том text box
, что я хочу сделать, это: если я буду вводить 4 characters
и skip that text box by pressing TAB key
затем один сигнал тревоги придет как "data should be more than 4 characters"
, а затем текст поле будет auto refreshed
. Если введенные данные превышают 4 символа, тогда никаких предупреждений не будет, я пытался с помощью события onkeyup, но некоторые, где я делаю неправильно. Любая помощь пожалуйстаоповещения и автообновление текстового поля, если длина 4
ответ
Я не знаю, что вы подразумеваете под «тогда текстовое поле будет автоматически обновлено», поэтому я собираюсь предположить, что вы хотите поместить курсор обратно в это поле. Что касается проверки длины значения при обходе, что Вы хотите .change()
или .blur()
события:
$("input[type=text]").change(function() {
if (this.value.length <= 4) {
alert("Please enter more than 4 characters.");
this.focus();
return false;
}
});
Демо: http://jsfiddle.net/XHKRh/
Событие размытия будет срабатывать каждый раз, когда фокус покидает поле; событие изменения не будет запускаться снова, если пользователь немедленно выйдет из поля снова, не меняя его. Я предпочитаю использовать изменения в сочетании с дополнительной валидацией в форме submit, так что пользователь не перестает задирать предупреждениями (хотя на самом деле я вообще не показывал бы оповещение, я бы разместил сообщение на следующей странице к полю).
спасибо за ваш ответ, но я обнаружил, что после предупреждения я все еще могу перейти к следующему текстовому полю, предупреждение идет нормально, но после того, как фокус внимания должен быть сохранен в этом текстовом поле, переходя к следующему текстовому полю, я думаю, что в вашей скрипке требуется небольшое редактирование. – Tom
См. мой обновленный ответ. Использование '.blur()' вместо '.change()' будет делать то, что вы хотите, но (как я сказал в своем обновлении) я предпочитаю другой подход. – nnnnnn
ok давайте попробуем это – Tom
Как насчет на blur
?
var el = $('#textbox').blur(function(e) {
if (el.val().length > 4) {
return;
}
el.focus();
alert('data should be more than 4 characters');
});
Обратите внимание, что этот метод обеспечивает плохой пользовательский интерфейс. Отображение сообщения внутри вашего элемента было бы предпочтительным, чтобы пользователь не мог взаимодействовать с чем-либо еще.
спасибо Eli за ваш ответ, хорошо, позвольте мне попробовать ваш код – Tom
Есть некоторые моменты, которые могли бы привести вам интересно:
- Вы не должны полагаться только на JavaScript для проверки форм, так как пользователи могут превратить его офф и обойти проверку
- Там является maxlength недвижимость для входов
- Вы, вероятно, ищете onblur вместо того, чтобы ключевое действие TAB, поскольку пользователи могут изменить фокус других способов
да, вы правы, я не должен полагаться только на javascript, тогда как я могу решить эту проблему с 'javascript turn off'? – Tom
@ Вы можете проверить с помощью серверного языка (мой любимый PHP, но есть и многие другие). Но вы должны использовать эту дополнительную меру, когда это жизненные ситуации, когда инъекционный материал будет большой проблемой для вас. – ajax333221
«Когда это жизнь или смерть»? Вы должны _адресивать проверку в своем серверном коде. – nnnnnn
- 1. TextRenderer.MeasureText() и максимальная длина текстового поля
- 2. Symfony max длина текстового поля
- 3. значение оповещения динамически созданного текстового поля
- 4. Добавление значения текстового поля для оповещения
- 5. использовать значение текстового поля в JavaScript оповещения
- 6. Какова максимальная длина текстового поля в SSRS
- 7. Использование текста JQuery(). Длина внутри текстового поля
- 8. Проверка значений текстового поля, если они соответствуют
- 9. Ищите оповещения или оповещения в MVC 4
- 10. Проверить значение текстового поля и оповещения, если разные значения в js
- 11. проверка значения поля текстового поля
- 12. Счетчик автоинкремента, если длина поля больше n
- 13. Выравнивание текстового поля и текстового поля
- 14. Validate длина поля
- 15. Если ошибка текстового поля else
- 16. jquery: если длина поля ввода больше 0?
- 17. оповещения значения текстового поля, когда кто-то входит
- 18. Как получить значение из текстового поля для оповещения
- 19. Длина поля C# и Sqlite
- 20. Длина строки в начале текстового поля MySQL при использовании HYDRATE_NONE?
- 21. редиректа после оповещения поля
- 22. Длина и текст Datagridviewtextboxcolumn?
- 23. Как проверить, превышена ли максимальная длина текстового поля?
- 24. Значение длины текстового поля
- 25. WPF Максимальная длина текстового поля для дробного значения
- 26. Максимальная длина текстового поля не работает на IE8
- 27. Каскадирование автоматического завершения текстового поля
- 28. VBA Длина имени текстового поля: «не юридический объект»
- 29. длина поля в массиве
- 30. Длина поля значения поля ввода
Что вы подразумеваете под 'auto refreshed'? – ajax333221
Вы могли бы показать свой код ...? –
@ ajax333221 auto refreshed означает, что текстовое поле снова будет пустым, и пользователь снова должен ввести данные в это текстовое поле. Если введенные данные превышают 4 символа, тогда все в порядке, но если данные введены 4 или меньше 4, тогда появится предупреждение, а текстовое поле станет пустым. – Tom