2012-03-19 26 views
9

Tôi không biết tại sao điều này không hoạt động, nhưng tôi chắc chắn đó là một bit rất phổ biến của javascript. Cú pháp của tôi rõ ràng là thiếu và tôi không biết tại sao:JQuery: Hộp nhập liệu trống onclick

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" /> 

Cảm ơn!

Trả lời

14

vấn đề của bạn là với dòng mã này:

$(this).val() = '' 

Cách thích hợp để thiết lập một giá trị trong jQuery là:

$(this).val("Your value here"); 

Bên cạnh đó, inline JS không bao giờ là một ý tưởng tốt. Sử dụng thay thế này:

$("#search").on("click", function() { 
    if ($(this).val() == "search") 
     $(this).val("") 
});​ 

Đây là a working fiddle.

Tài liệu tham khảo: jQuery .val()

+2

Sự hoàn hảo. Cảm ơn! –

0

bạn không cần $ (this) .val (""); hoặc $ (this) .val (''); để trống nó

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" /> 
+1

+1 Làm việc hoàn hảo. Cảm ơn! –

4

Đặt điều này trong một file js riêng ...

này sẽ trả lại cho giá trị ban đầu nếu không có gì được gõ sau khi nó mất tập trung.

$(document).ready(function() { 
    $("#search").focus(function() { 
     if ($(this).val()=="search") { 
      $(this).val(''); 
     } 
    }); 

    $("#search").blur(function() { 
     if ($(this).val()=="") { 
      $(this).val('search'); 
     } 
    }); 
}); 
+0

Điều này cũng tuyệt vời, tôi thực sự đã viết cùng một mã sau câu trả lời của James. Cảm ơn, mặc dù! –

-2
function search(textBox) 
{ 
    if($(textBox).val() == 'search') { 
     $(textBox).val() = ''; 
    } 
    return false; 
} 

<input type="text" value="search" id="search" name="q" onclick="return search();" /> 

Hãy thử điều này và debug.

2
$(this).val() = ''; 

nên

$(this).val(''); 

Xem .val() tài liệu.

2

Nó phải là như thế này:

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" /> 

correct way : $this.val(''); 
incorrect way : $this.val() = ''; 
1

này đã trở nên dễ dàng hơn với một HTML5 Placeholder:

<input type="text" name="search" placeholder="Enter your search query here"> 

Nó không được hỗ trợ trong các trình duyệt cũ hơn, nhưng nếu bạn chỉ nhắm mục tiêu những người hiện đại, bạn nên sử dụng nó: http://caniuse.com/#feat=input-placeholder

+0

Thuộc tính giữ chỗ thực sự làm cho điều này dễ dàng hơn nhiều (với điều kiện trình duyệt của bạn hỗ trợ nó), nhưng bạn nên tránh chỉ đăng các liên kết dưới dạng câu trả lời. Liên kết có xu hướng thối và biến mất. Nội dung chính sẽ được đăng vào câu trả lời của bạn. –

+0

Xin chào Chuck, tx cho phản hồi. Tôi đã cập nhật câu trả lời của mình. – Jarown

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