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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.