jQuery thay đổi giá trị văn bản đầu vào


155

Tôi không thể tìm đúng bộ chọn cho:

<input maxlength="6" size="6" id="colorpickerField1" name="sitebg" value="#EEEEEE" type="text">

Tôi muốn thay đổi giá trị thành = 000000. Tôi cần bộ chọn để tìm "tên" chứ không phải id của kiểu nhập văn bản.

Không nên làm việc này?:

$("text.sitebg").val("000000");

Các giải pháp được trình bày không hoạt động, vấn đề với điều này là gì?

$.getJSON("http://www.mysitehere.org/wp-content/themes/ctr-theme/update_genform.php",function(data) {
    $("#form1").append(data.sitebg);
    $('input.sitebg').val('000000');
});

Dữ liệu JSON hoạt động chính xác; ý tưởng là sau đó chuyển các giá trị JSON vào các giá trị văn bản đầu vào của biểu mẫu. Nhưng không hoạt động :(

Câu trả lời:


307

không, bạn cần phải làm một cái gì đó như:

$('input.sitebg').val('000000');

nhưng bạn thực sự nên sử dụng ID duy nhất nếu có thể.

Bạn cũng có thể nhận được cụ thể hơn, chẳng hạn như:

$('input[type=text].sitebg').val('000000');

BIÊN TẬP:

làm điều này để tìm đầu vào của bạn dựa trên thuộc tính name:

$('input[name=sitebg]').val('000000');

Tôi sẽ chấp nhận awnser này, bạn có thể giới thiệu một cuốn sách / hướng dẫn tốt (tốt nhất là một cuốn sách) về jquery nơi tôi thực sự có thể tìm hiểu về bộ chọn? đặc biệt là chọn mẫu?
Joricam

7
đây là điều tốt nhất trên internet: futurecolors.ru/jquery
Jason

@Jason Liên kết bị hỏng, tiêu đề của cuốn sách là gì?
oyaltyhi

@idelhi ôi không! Tôi xin lỗi. Nhận xét đó đã 5 tuổi, vì vậy tôi đoán họ đã gỡ nó xuống :(
Jason

@Jason Có rất tiếc. Tuy nhiên, bạn có nhớ tiêu đề của cuốn sách?
oyaltyhi

31

Cách jQuery để thay đổi giá trị trên trường nhập văn bản là:

$('#colorpickerField1').attr('value', '#000000')

điều này sẽ thay đổi thuộc tính valuecho phần tử DOM có ID #colorpickerField1từ #EEEEEEsang#000000


26

Thực hành tốt nhất là sử dụng nhận dạng trực tiếp:

$('#id').val('xxx');


đơn giản và tốt nhất :)
MRRaja

2
Tại sao điều này làm việc nhưng document.getElementById("#id").value = 'xxx';không làm việc cho tôi? Nó không thay đổi giá trị văn bản xuất hiện, chỉ thuộc tính giá trị của phần tử DOM.
dùng3494047

1
Bạn đã sử dụng phương thức ById, # là ký hiệu css. Xóa nó.
Scott Chu

9

Khi đặt giá trị mới của phần tử, bạn cần thay đổi kích hoạt cuộc gọi.

$('element').val(newValue).trigger('change');


Điều này đã khắc phục sự cố cho tôi khi trình xử lý sự kiện thay đổi được gọi hai lần; một lần với giá trị mới và sau đó một lần nữa với [attr = val]
Peter Lenjo

3

Chỉ cần thêm vào câu trả lời của Jason, . bộ chọn chỉ dành cho các lớp. Nếu bạn muốn chọn một cái gì đó ngoài phần tử, id hoặc lớp, bạn cần bọc nó trong dấu ngoặc vuông.

ví dụ

$('element[attr=val]')

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.