Thay đổi văn bản giữ chỗ


78

Làm cách nào để thay đổi văn bản giữ chỗ của một phần tử đầu vào?

Ví dụ, tôi có 3 đầu vào của loại văn bản.

<input type="text" name="Email" placeholder="Some Text">
<input type="text" name="First Name" placeholder="Some Text">
<input type="text" name="Last Name"placeholder="Some Text">

Làm cách nào để thay đổi một số văn bản Text bằng JavaScript hoặc jQuery?


9
Bạn đã thử $('input').attr('placeholder','Some New Text');?
Jeemusu

1
Bạn đã thử bất cứ điều gì với javascript hoặc jquery? Hãy đăng những gì bạn đã thử và những vấn đề bạn gặp phải là gì.
Ravi Y

Bạn có thể sử dụng malarkey
không xác định

Câu trả lời:


143

Nếu bạn muốn sử dụng Javascript thì bạn có thể sử dụng getElementsByName()phương pháp để chọn các inputtrường và thay đổi placeholdercho từng trường ... xem đoạn mã bên dưới ...

document.getElementsByName('Email')[0].placeholder='new text for email';
document.getElementsByName('First Name')[0].placeholder='new text for fname';
document.getElementsByName('Last Name')[0].placeholder='new text for lname';

Nếu không, hãy sử dụng jQuery:

$('input:text').attr('placeholder','Some New Text');

29
+1 để trở thành bản địa mà không sử dụng thư viện bên ngoài ... mọi người cần chú ý đến các API DOM, bạn có thể không cần sử dụng toàn bộ thư viện chỉ để thực hiện một việc đơn giản như vậy.
Ahmad Alfy 22/11/12

Thường thì trường đã chứa một giá trị, vì vậy trình giữ chỗ sẽ không hiển thị. Bạn phải xóa giá trị. var email = document.getElementsByName("Email")[0]; email.value=''; email.placeholder='new text for email';
askrynnikov

28

Giải pháp này sử dụng jQuery. Nếu bạn muốn sử dụng cùng một văn bản giữ chỗ cho tất cả các đầu vào văn bản, bạn có thể sử dụng

$('input:text').attr('placeholder','Some New Text');

Và nếu bạn muốn các trình giữ chỗ khác nhau, bạn có thể sử dụng id của phần tử để thay đổi trình giữ chỗ

$('#element1_id').attr('placeholder','Some New Text 1');
$('#element2_id').attr('placeholder','Some New Text 2');


5

Sử dụng jquery, bạn có thể thực hiện việc này bằng mã sau:

<input type="text" id="tbxEmail" name="Email" placeholder="Some Text"/>

$('#tbxEmail').attr('placeholder','Some New Text');

4

Tôi đã phải đối mặt với cùng một vấn đề.

Trong JS, trước tiên bạn phải xóa hộp văn bản của đầu vào văn bản. Nếu không, văn bản giữ chỗ sẽ không hiển thị.

Đây là giải pháp của tôi.

document.getElementsByName("email")[0].value="";
document.getElementsByName("email")[0].placeholder="your message";

Đúng rồi. Nếu không đặt trường thành trống trước, trình giữ chỗ sẽ không hiển thị. Đã dành một thời gian dài cho việc này cho đến khi tôi tình cờ thấy bài đăng này.
Người dùng12345

0

Hãy thử truy cập thuộc tính trình giữ chỗ của đầu vào và thay đổi giá trị của nó như sau:

$('#some_input_id').attr('placeholder','New Text Here');

Cũng có thể xóa trình giữ chỗ nếu được yêu cầu như:

$('#some_input_id').attr('placeholder','');

0

Để sử dụng JavaScript:

document.getElementsByClassName('select-holder')[0].placeholder = "This is my new text";

Để sử dụng jQuery:

$('.select-holder')[0].placeholder = "This is my new text";
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.