2013-06-12 20 views
14

Stworzyłem prostą stronę z polem listy i tekstem z warunkami, które powinny być wymagane."Wymagany" textarea atrybut nie działa, mimo że wartość jest pusta

Pole listy działa poprawnie, ale pole tekstowe nie oznacza, że ​​pole jest wymagane do wypełnienia.

<!DOCTYPE html> 
<html> 
<head> 
<title>Ratings & Reviews</title> 
<body> 
<form> 

<span>Customer Service*</span> 
<span> 
    <select name=customer id=aa required> 
     <option selected="rate" value="" disabled>rate</option> 
     <option value=1>1</option> 
     <option value=2>2</option> 
     <option value=3>3</option> 
     <option value=4>4</option> 
     <option value=5>5</option> 
    </select> 
</span> 
<br><br> 
<span>Value for money*</span> 
<span> 
    <select name=money id=aa required> 
     <option selected="rate" value="" disabled>rate</option> 
     <option value=1>1</option> 
     <option value=2>2</option> 
     <option value=3>3</option> 
     <option value=4>4</option> 
     <option value=5>5</option> 
    </select> 
</span> 

<div> 
    <textarea name="reviews" rows=11 cols=50 maxlength=250 required> 
    </textarea> 
</div> 

<div id=submit> 
    <br> 
    <input type=submit name=submit value=submit> 
</div> 

</form> 
</body> 
</html> 

Odpowiedz

53

masz pustą przestrzeń wewnątrz obszaru tekstu, należy go usunąć:

<textarea name="reviews" rows=11 cols=50 maxlength=250 required ></textarea> 
+0

Pokonaj mnie! –

+0

@ ShadowWizard, lol, sekundy są w pytaniu. :) – sinisake

+0

Tak, pięć sekund przed sobą. W każdym razie, weź moje [skrzypce] (http://jsfiddle.net/GW3v9/). :-) –

8

Problem jest z przestrzeni między tagami. Nie powinno się podawać spacji w html pomiędzy tymi znacznikami, w przeciwnym razie przeglądarka uzna to za wartość.

+0

dzięki za to wspaniałe rozwiązania – Raj

0

spróbować

<textarea name="mm" id="mm" rows="5" placeholder="NA if not applicable" required="required"></textarea> 
+0

Niepoprawnie. Atrybut "required" jest wartością logiczną. Jeśli istnieje, to 'textarea' będzie wymagane do wypełnienia. Dlatego zachowanie' required' jest równe 'required =" required "' – Raptor

+0

Prawidłowe. Cytuj ze specyfikacji W3C i Whatwg: "Jeśli atrybut jest obecny, jego wartość musi być pustym łańcuchem lub wartością, która jest dopasowana do wielkości liter ASCII dla nazwy kanonicznej atrybutu, bez początkowych lub końcowych białych znaków." https://www.w3.org/TR/html5/infrastructure.html#boolean-attributes https://html.spec.whatwg.org/multipage/infrastructure.html#boolean-attributes https: // www. w3.org/TR/html51/infrastructure.html#sec-boolean-attributes Wartość atrybutu nie jest wymagana. – hmundt

+0

Prawidłowe i niektóre dynamicznie tworzone potrzeby html = "wymagane" – user3012857

2

I probaly forma ma atrybut novalidate. Wszelkie atrybuty sprawdzania elementu formularza (takie jak required lub regexp) z formularzem novalidate attribute zostaną zignorowane.