2009-12-04 31 views
9

Tôi đang sử dụng dijit.form.FilteringSelect để cung cấp cách chọn giá trị từ < chọn >. Vấn đề là, khi sử dụng dojo, nhãn được trả về thay vì giá trị của s.Làm thế nào để có được "giá trị" của một FilteringSelect <select> trong dojo?

Ví dụ:
<select name="test" dojoType="dijit.form.FilteringSelect">
<option value="1">One</option>
<option value="2">Two</option>
</select>

Dojo được trả lại chữ "một" nếu tùy chọn đó được chọn, thay vì giá trị cho tùy chọn đó, "1". Điều này cũng đúng cho "hai" và "2".

Nếu dojo bị xóa khỏi phần tử này, giá trị được trả lại như mong đợi.

+0

Ý anh là gì "võ đường đang trở lại giá trị". Hoặc bạn đăng biểu mẫu này? Nếu vậy, làm thế nào, thông qua một bài bình thường HTTP hoặc một yêu cầu dojo XHR, hoặc là bạn đang cố gắng để đọc giá trị bằng cách sử dụng dojo.getValue thông qua một JS. Một bộ mã hoàn chỉnh hơn sẽ được yêu cầu để trợ giúp. – Kitson

+0

Nó hoạt động chính xác như mctom987 nói. Đó có thể là vì Swigley đã chỉnh sửa câu hỏi. –

Trả lời

4

Tôi đã phát hiện ra rằng dojo tạo 2 phần tử. Một sử dụng tên, trong đó có giá trị trong đó sử dụng NAME của phần tử, và một trong đó có chứa nhãn cho các tùy chọn, trong đó sử dụng ID của phần tử. Vì tôi đã sử dụng document.getElementById(), điều này đã trả về giá trị sai. Sử dụng giá trị từ tên cung cấp kết quả chính xác.

+0

Có, vì vậy bạn cần sử dụng API dijit mà Swingley nói. Sử dụng document.getElementByid hoặc jquery sẽ mang lại các kết quả khác nhau. – Eric

16

Cách dojo để thực hiện việc này sẽ là sử dụng dijit.byId ('yourDijitId'). Attr().

Để có được giá trị mà bạn muốn:

dijit.byId('yourDijitId').attr('value'); 

Để giá trị hiển thị trong lọc chọn:

dijit.byId('yourDijitId').attr('displayedValue'); 

EDIT: attr() đã bị phản đối tại 1.5, at 1.5 and beyond, use get()

+3

attr hiện không được chấp nhận. Thay vào đó, bạn nên sử dụng. Ví dụ. dijit.byId ('yourDijitId'). get ('value'); – voidstate

+0

Cảm ơn, tôi sẽ cập nhật câu trả lời của mình. –

6

Chạy vào cùng một vấn đề và đưa ra giải pháp này.

var optVal = dijit.byId("yourDijitId").item.value; 

Các widget FilteringsSelect đặt "Hiển thị giá trị gia tăng" trong cả displayValuevalue tài sản. Cách duy nhất mà tôi đã tìm thấy để có được giá trị tùy chọn là đi qua thuộc tính item liệt kê các thuộc tính tùy chọn đã chọn.

8

Để có được giá trị của dijit.form.FilteringSelect

dijit.byId('yourId').get('value'); 

Để có được displayedValue của dijit.form.FilteringSelect

dijit.byId('yourId').get('displayedValue'); 
0

Đối với đồng Google ra có cố gắng tìm ĐỐI TƯỢNG ĐƯỢC CHỌN trong Lọc Chọn:

dijit.byId("yourDijitId").item 

đề cập đến mục đã chọn, trong trường hợp bạn cần truy cập vào các thuộc tính khác của đối tượng.

(mũ chóp để Bitwize cho pointin sự chỉ đạo đúng với dijit.byId("yourDijitId").item.value)

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