2013-10-19 15 views
5

Tôi có một biểu mẫu đơn giản có một số trường bắt buộc trong đó không.Cách kiểm tra xem thuộc tính bắt buộc có được đặt trên một trường

<form name="form" method="post"> 
<pre> 
<label>  Name: </label><input type="text" name="name" required> 
<label> Address: </label><input type="text" name="add" required> 
<label>Telephone: </label><input type="text" name="tel"> 
<input type="submit" value="Submit Form"> 
</pre> 
</form> 

Tôi biết bạn có thể đặt thuộc tính bắt buộc bằng cách sử dụng document.forms['form']['name'].required = false. Nhưng có cách nào mà bạn chỉ có thể kiểm tra xem thuộc tính bắt buộc có được đặt hay không? Tôi đã thử sử dụng getattribute() nhưng nó chỉ trả về trống. Tôi cũng đã thử sử dụng mã bên dưới, nhưng nó luôn thực thi câu lệnh, ngay cả khi thuộc tính bắt buộc không được đặt (ví dụ: trên trường điện thoại).

if(document.forms['form']['name'].required = true) 
    label.innerHTML += " (required)" 

Có ai biết cách tôi có thể làm điều này không?

Cập nhật: Cả hai đặt câu lệnh if thành == thay vì = và sử dụng hasAttribute work, thanks.

+5

Make rằng một '==' trong 'if()'. Hoặc thực sự làm một cái gì đó như 'alert (" value: "+ document.forms ['form'] ['name']. Required);' và kiểm tra giá trị đó. – sjngm

+0

Có lẽ tôi không hiểu, nhưng nếu 'getAttribute' trả về' null' hoặc '" "', điều đó có nghĩa là thuộc tính không tồn tại trên phần tử đó, đó là những gì bạn muốn biết. – ultranaut

+0

Bạn cần kiểm tra, không phải chuyển nhượng. Nó sẽ hoạt động, nghĩa là kiểm tra 'if (document.forms ['form'] ['name']. Required)'. Ở đây bạn đang gán thay vì kiểm tra vì '=' sẽ luôn trả về giá trị true. – PSL

Trả lời

8

Hãy thử điều này:

var elem = document.getElementsByTagName('input')[0]; 

if(elem.hasAttribute('required')){ 
//do your stuff 
} 
Các vấn đề liên quan