2013-10-03 1 views
86

Я искал способы автоматической записи jQuery с использованием проверки html5 ко всем моим полям ввода, но мне трудно сообщить, где их написать.jQuery add required to input fields

Я хочу взять эту

<input type="text" name="first_name" value="" id="freeform_first_name" 
maxlength="150"> 

и он автоматически добавит необходимый перед закрывающим тегом

<input type="text" name="first_name" value="" id="freeform_first_name" 
maxlength="150" required> 

Я думал, что я мог сделать коснуться вдоль линий

$("input").attr("required", "true"); 

Но это не работает. Любая помощь приветствуется.

+1

Разве это не завернуто в дом? '$ (function() {....});' – PSL

+0

Я использую этот http://jsfiddle.net/japaneselanguagefriend/LEZ4r/ –

+0

, если «input» является идентификатором jquery, который отсутствует в # в селекторе здесь , –

ответ

229
$("input").prop('required',true); 

DEMO FIDDLE

+1

Хмм, добавлена ​​кнопка отправки, но все еще не проверяется или добавляется обязательный атрибут в поля ввода. http://jsfiddle.net/japaneselanguagefriend/LEZ4r/ –

+1

@AoiHana Работает отлично. http://jsfiddle.net/LEZ4r/1/ – Unknown

+0

, если «input» - это id, в jquery отсутствует # в селекторе здесь. –

33

Вы можете сделать это с помощью атр, ошибка, которую вы сделали, что вы положили истинный в кавычках. вместо этого попробуйте это:

$("input").attr("required", true); 
+0

, если «input» - это id, в jquery отсутствует # в селекторе здесь. –

+2

@JohnMeyer «input» - это имя селектора тегов – dave4jr

1

Я нашел, что jquery 1.11.1 не делает это надежно.

Я использовал $('#estimate').attr('required', true) и $('#estimate').removeAttr('required').

Удаление required было не надежным. Иногда он оставил бы атрибут required без значения. Поскольку required является булевым атрибутом, его простое присутствие без значения видно браузером как true.

Эта ошибка была прерывистой, и я устал возиться с ней. Переключено на document.getElementById("estimate").required = true и document.getElementById("estimate").required = false.

+0

'removeAttr' не работает для меня. Затем я использую ваше решение и отлично работаю. Благодаря! –

17

Я обнаружил, что следующие реализации являются эффективными:

$('#freeform_first_name').removeAttr('required'); 

$('#freeform_first_name').attr('required', 'required'); 

Эти команды (атр, removeAttr, проп) ведут себя по-разному в зависимости от версии JQuery вы используете. Пожалуйста, обратитесь к документации здесь: https://api.jquery.com/attr/