Szukałem sposobów, aby jQuery automatycznie zapisywał wymagane przy użyciu walidacji html5 we wszystkich moich polach wejściowych, ale nie mogę powiedzieć, gdzie to napisać.
Chcę to wziąć
<input type="text" name="first_name" value="" id="freeform_first_name"
maxlength="150">
i automatycznie doda wymagane przed tagiem zamykającym
<input type="text" name="first_name" value="" id="freeform_first_name"
maxlength="150" required>
Pomyślałem, że mógłbym zrobić coś na wzór
$("input").attr("required", "true");
Ale to nie działa. Każda pomoc jest bardzo ceniona.
javascript
jquery
validation
Miura-shi
źródło
źródło
$(function(){....});
Odpowiedzi:
DEMO FIDDLE
źródło
TypeError: element.prop is not a function
błąd<form></form>
tagów w swoim jsFiddle.prop('required',true)
do wejścia, zanim go wezwałem.css("display", "block")
.Możesz to zrobić za pomocą attr, błąd, który popełniłeś, polega na umieszczeniu prawdziwych cudzysłowów wewnętrznych. zamiast tego spróbuj tego:
źródło
required
jest atrybutem logicznym i należy go zawsze pomijać (dla „fałszu”) lub mieć taką samą wartość jak jego nazwa (tj."required"
dla „prawda”). Właściwie lepiej jest użyć.prop()
.prop()
nie działa tam, tak jak w nowoczesnych przeglądarkach. Nadal najlepiej używać$(ele).attr("required", true)
ifalse
usuwać.Zauważyłem, że następujące implementacje są skuteczne:
Te polecenia (attr, removeAttr, prop) zachowują się różnie w zależności od używanej wersji JQuery. Zapoznaj się z dokumentacją tutaj: https://api.jquery.com/attr/
źródło
Korzystanie z
.attr
metodyZa pomocą
.prop
Przeczytaj więcej tutaj
źródło
Zauważył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 pozostawiałrequired
atrybut bez wartości. Ponieważrequired
jest to atrybut logiczny, sama jego obecność, bez wartości, jest postrzegana przez przeglądarkę jakotrue
.Ten błąd był sporadyczny i zmęczyłem się nim. Przełączono na
document.getElementById("estimate").required = true
idocument.getElementById("estimate").required = false
.źródło
removeAttr
dla mnie nie działa. Wtedy używam twojego rozwiązania i działa dobrze. Dzięki!Nie należy załączyć prawda z podwójny cudzysłów „” powinna być jak
Możesz także użyć prop
Zamiast prawdy możesz spróbować wymagane. Jak na przykład
źródło