2012-01-18 38 views
11

Tôi đang cố gắng sử dụng jQuery để điền vào biểu mẫu với một số giá trị mặc định.Điền vào biểu mẫu với jQuery

Biểu mẫu được chứa trong div có id. Trong thực tế, mỗi phần tử có một id, tôi đã làm như vậy chỉ để có thể nhanh chóng chọn từng phần của biểu mẫu bằng cách sử dụng cú pháp $("#id").
Dưới đây là hình thức:

<div id="panel" style="position: absolute; left: 190px; top: 300px; width: 400px; height: 300px; border: medium groove brown; background: none repeat scroll 0% 0% black; z-index: 100; color: white;"><form id="form_coord_0"> 
X <input type="text" style="height: 25px; font-size: 10px;" size="2" name="X" id="coordX_0"/> 
Y <input type="text" style="height: 25px; font-size: 10px;" size="2" name="Y" id="coordY_0"/> 
<input type="button" id="edit_0" value="M"/> 
<input type="button" id="remove_0" value="-"/> 
<input type="button" id="add_0" value="+"/> 
<input type="button" id="go_0" value="go!"/> 
<br/> 
</div> 

tôi cần phải thiết lập các lĩnh vực coordX_0 văn bản với một số giá trị, chúng ta hãy nói: 123.

Tôi nghĩ tôi có thể làm

$("#coordX_0").text.value = 123; 

Nhưng nó dường như không làm việc. Bất kỳ gợi ý nào?

+0

http://api.jquery.com/val, tài liệu là bạn của bạn. – Jasper

+0

Cảm ơn bạn Jasper, tôi là một người mới với jQuery (tốt, ngay cả với js: D) Tôi thậm chí không biết phương thức val() tồn tại. – nick2k3

+0

@ nick2k3 Điều đầu tiên tôi làm khi học jQuery là xem qua tài liệu API và xem tất cả các chức năng có sẵn và các bản demo về cách sử dụng chúng. Tôi đã làm điều đó vì vậy tôi có thể có ít nhất một ý tưởng cơ bản về những gì khuôn khổ sẽ cho phép tôi làm. Ví dụ, hàm '.val()' có thể lấy hàm làm đối số nếu bạn muốn xử lý nhiều đầu vào biểu mẫu cùng một lúc, bạn có thể thấy câu trả lời của tôi bên dưới để biết ví dụ về cách thực hiện điều này: http://stackoverflow.com/questions/8914161/fill-in-a-form-with-jquery/8914281 # 8914281 – Jasper

Trả lời

17

Bạn có thể sử dụng val() chức năng để thiết lập đầu vào giá trị

$("#coordX_0").val(123); 

Ngẫu nhiên, mã ban đầu của bạn có thể được thực hiện để làm việc bằng cách thiết lập giá trị thuộc tính trên phần tử dom thực tế. Bạn truy cập vào các yếu tố dom bởi lập chỉ mục kết quả jQuery của bạn:

$("#coordX_0")[0].value = 123; 
+0

Cảm ơn bạn rất nhiều! Điều đó giải quyết nó. Bạn hoặc ai đó có thể biết tôi có thể tìm thấy tài liệu mở rộng về phương pháp nào tôi có thể gọi trên các đối tượng đó không? (một cái gì đó giống như JavaDoc nhưng đối với javascript và DOM). – nick2k3

+0

Vâng các tài liệu jQuery là tuyệt vời - nhưng tài liệu dom bản địa ?? - không phải trên đỉnh đầu tôi. –

+1

@ nick2k3 Hãy thử tài liệu MDN: https://developer.mozilla.org/en/DOM/HTMLInputElement. Chỉ cần tìm kiếm Google (hoặc bất kỳ) cho '[thuộc tính mà tôi muốn biết về] MDN' trong đó' [thuộc tính mà tôi muốn biết về] 'sẽ giống như' giá trị phần tử'. – Jasper

3

Để thiết lập giá trị của một lĩnh vực đầu vào của nó

$("#coordX_0").val(123) 
3
$("#coordX_0").val("123"); 

Bạn cần có dấu ngoặc kép quá tôi nghĩ. Mặc dù nó có thể làm việc cả hai cách.

2

Sử dụng val phương pháp để thiết lập các văn bản của bất kỳ lĩnh vực input.

$("#coordX_0").val(123); 
3

Hãy thử điều này thay vào đó, bằng cách sử dụng phương pháp val:

$("#coordX_0").val('some string or number'); 
1

Sử dụng này để thay thế:

$("#coordX_0").val("123"); 
2

sử dụng chức năng val

$("#coordX_0").val("123"); 
2

Chỉ cần viết:

$("#coordX_0").val(123); 

Trong jQuery, text là một hàm để trích xuất văn bản trong dom.

14

Tất cả các câu trả lời là chính xác cùng vì vậy tôi nghĩ rằng tôi muốn gửi một cái gì đó khác nhau:

var inputs_to_values = { 
    'coordX_0' : 'some value', 
    'coordY_0' : 'some other value', 
    'edit_0' : 'N', 
    'remove_0' : '_', 
    'add_0' : '-', 
    'go_0'  : 'stop?' 
}; 
$('#form_coord_0').find('input').val(function (index, value) { 
    return inputs_to_values[this.id]; 
}); 

Bạn có thể vượt qua .val() một chức năng, bất cứ điều gì được trả về từ hàm cho mỗi phần tử sẽ là giá trị mới:

Hàm trả về giá trị cần đặt.

này là yếu tố hiện tại.

Nhận vị trí chỉ mục của phần tử trong tập hợp và giá trị cũ làm đối số.

Nguồn: http://api.jquery.com/val

Đoạn mã trên hy vọng rằng mỗi đầu vào sẽ có một tài sản trong đối tượng inputs_to_values vì vậy bạn có thể chuyển đổi ID của đầu vào cho các giá trị mới cho đầu vào đó.

Đây là bản trình diễn: http://jsfiddle.net/zYfpE/

+0

Tôi đã tìm kiếm một cái gì đó như thế, tôi đã chắc chắn có một phương pháp bản địa trong jquery, nhưng điều này anyway là đủ nhỏ gọn. Thực sự thích nó. – AndreaBogazzi

+0

Phương pháp ngắn và dễ mở rộng này chỉ là những gì tôi cần và nghĩ rằng nó trả lời câu hỏi một cách hoàn hảo. Cảm ơn! – Yatko

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