2013-10-03 9 views
86

Szukałem sposobów, aby jQuery automatycznie pisać wymagane przy użyciu sprawdzania poprawności html5 do wszystkich moich pól wejściowych, ale mam problem z informacją, gdzie go napisać.jQuery dodać wymagane do wprowadzania pól

chcę wziąć ten

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

i go automatycznie dodać wymagane przed tagiem zamykającym

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

Myślałem, że mogę zrobić cos wzdłuż linii

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

Ale to nie działa. Każda pomoc jest bardzo doceniana.

+1

Czy nie jest zapakowany w dom gotowy? '$ (function() {....});' – PSL

+0

Używam tego http://jsfiddle.net/japaneselanguagefriend/LEZ4r/ –

+0

jeśli "input" jest id, jquery brakuje # w selektorze tutaj . –

Odpowiedz

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

DEMO FIDDLE

+1

Hmm, dodano przycisk przesyłania, ale wciąż nie sprawdzono poprawności lub nie dodawano wymaganego atrybutu do pól wejściowych. http://jsfiddle.net/japaneselanguagefriend/LEZ4r/ –

+1

@AoiHana Działa dobrze. http://jsfiddle.net/LEZ4r/1/ – Unknown

+0

jeśli "input" jest identyfikatorem, jQuery brakuje tutaj w selektorze. –

33

Można to zrobić za pomocą atr, pomyłka, że ​​wykonany jest to, że można umieścić prawdziwy wewnątrz cudzysłowów. zamiast tego spróbuj tego:

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

jeśli "input" jest identyfikatorem, jQuery brakuje tutaj w tym selektorze. –

+2

@JohnMeyer "input" to nazwa selektora znaczników – dave4jr

1

Znalazłem, że jquery 1.11.1 nie robi tego niezawodnie.

Użyłem $('#estimate').attr('required', true) i $('#estimate').removeAttr('required').

Usunięcie required nie było niezawodne. Czasami pozostawił atrybut required bez wartości. Ponieważ required jest atrybutem boolowskim, jego obecność, bez wartości, jest postrzegana przez przeglądarkę jako true.

Ten błąd był przerywany i zmęczyłem się nim. Przełączono na document.getElementById("estimate").required = true i document.getElementById("estimate").required = false.

+0

'removeAttr' nie działa dla mnie. Potem używam twojego rozwiązania i działa dobrze. Dzięki! –

17

znalazłem, że następujące implementacje są skuteczne:

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

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

Polecenia te (attr, removeAttr, prop) zachowują się w różny sposób w zależności od wersji JQuery używasz. Proszę zapoznać się z dokumentacją tutaj: https://api.jquery.com/attr/

Powiązane problemy