2009-10-26 49 views
27

Tôi có thể dễ dàng tạo trường nhập html có văn bản đã có trong đó. Nhưng khi người dùng nhấp vào trường nhập văn bản không biến mất nhưng vẫn ở đó. Sau đó, người dùng phải xóa văn bản theo cách thủ công. Làm thế nào tôi có thể tạo ra một lĩnh vực đầu vào, nơi khi người dùng nhấp vào hộp lĩnh vực đầu vào văn bản sau đó biến mất?Văn bản trong Trường HTML biến mất khi được nhấp?

Trả lời

3

Làm thế nào về một cái gì đó như thế này?

<input name="myvalue" type="text" onfocus="if(this.value=='enter value')this.value='';" onblur="if(this.value=='')this.value='enter value';">

này sẽ xóa khi tập trung lần đầu tiên, nhưng sau đó sẽ không rõ ràng về trọng tâm tiếp theo sau khi người dùng nhập vào giá trị của họ, khi để trống nó khôi phục các giá trị nhất định.

20

Để thực hiện điều đó, bạn có thể sử dụng hai sự kiện onfocus và onblur:

<input type="text" name="theName" value="DefaultValue" 
    onblur="if(this.value==''){ this.value='DefaultValue'; this.style.color='#BBB';}" 
    onfocus="if(this.value=='DefaultValue'){ this.value=''; this.style.color='#000';}" 
    style="color:#BBB;" /> 
+0

và những gì nếu người dùng không nhập vlue, nó sẽ vượt qua giá trị trống hoặc giá trị defaul? trường hợp sử dụng của tôi cũng giống như thế này nhưng tôi muốn khi người dùng không nhập bất kỳ giá trị trống nào nên chỉ định cách chúng ta thực hiện nó? Bất kì lời đề nghị nào? Và không sử dụng thuộc tính placholder – mahesh

+0

@mahesh Những gì bạn có thể làm là thêm hình nền với văn bản mong muốn được viết trong đó và thêm trình nghe sự kiện onClick làm cho hình ảnh vô hình. –

+0

đây là giải pháp tuyệt vời nếu bạn vẫn phải hỗ trợ IE9! Cảm ơn! –

139

Những gì bạn muốn làm là sử dụng thuộc tính HTML5 placeholder cho phép bạn đặt một giá trị mặc định cho hộp đầu vào của bạn:

<input type="text" name="inputBox" placeholder="enter your text here">

Điều này sẽ đạt được những gì bạn đang tìm kiếm. Tuy nhiên, hãy cẩn thận vì thuộc tính giữ chỗ không được hỗ trợ trong Internet Explorer 9 và các phiên bản cũ hơn.

+2

HTML5 giải quyết vấn đề này cho chúng tôi với thuộc tính trình giữ chỗ. Không cần phải quản lý các sự kiện một lần nữa. Câu trả lời tốt – Ron

+0

thuộc tính placeholer đầu vào không hỗ trợ trong IE9 và IE8 ... để biết thêm, hãy truy cập http://caniuse.com –

+0

Có cách nào để trình giữ chỗ biến mất khi người dùng bắt đầu nhập, nhưng không biến mất khi trường là 'tập trung'. –

3

hãy thử cái này.

<label for="user">user</label> 
<input type="text" name="user" 
onfocus="if(this.value==this.defaultValue)this.value=''"  
onblur="if(this.value=='')this.value=this.defaultValue" 
value="username" maxlength="19" /> 

hy vọng điều này sẽ hữu ích.

+0

và nếu người dùng không nhập vlue, nó sẽ vượt qua giá trị trống hoặc giá trị mặc định? trường hợp sử dụng của tôi cũng giống như thế này nhưng tôi muốn khi người dùng không nhập bất kỳ giá trị trống nào nên chỉ định cách chúng ta thực hiện nó? Bất kì lời đề nghị nào? Và không sử dụng thuộc tính placholder – mahesh

5

này cũng đơn giản tôi nghĩ rằng giải pháp đó phải giải quyết tất cả các vấn đề của bạn:

<input name="myvalue" id="valueText" type="text" value="ENTER VALUE"> 

Đây là nút gửi của bạn:

<input type="submit" id= "submitBtn" value="Submit"> 

sau đó đặt jQuery nhỏ này trong một file js:

//this will submit only if the value is not default 
$("#submitBtn").click(function() { 
    if ($("#valueText").val() === "ENTER VALUE") 
    { 
     alert("please insert a valid value"); 
     return false; 
    } 
}); 

//this will put default value if the field is empty 
$("#valueText").blur(function() { 
    if(this.value == ''){ 
     this.value = 'ENTER VALUE'; 
    } 
}); 

//this will empty the field is the value is the default one 
$("#valueText").focus(function() { 
    if (this.value == 'ENTER VALUE') { 
     this.value = ''; 
    } 
}); 

Và nó cũng hoạt động trong các trình duyệt cũ hơn. Plus nó có thể dễ dàng được chuyển đổi sang javascript bình thường nếu bạn cần.

+0

Cảm ơn nó hoạt động trên IE9 mà chúng ta phải hỗ trợ.Vì vậy, tôi không thể sử dụng điều giữ chỗ. Để giữ cài đặt của giá trị trong hộp văn bản ở một nơi tôi đã sử dụng jQuery để đặt giá trị trong hộp trên tài liệu sẵn sàng. $ (document) .ready (function() { \t/* thiết lập tìm kiếm giá trị hộp đầu vào tải của tài liệu */ \t $ ('# valueText') val ("ENTER VALUE");. } – atsurti

4

đơn giản như thế này: <input type="text" name="email" value="e-mail..." onFocus="this.value=''">

Các vấn đề liên quan