2011-09-14 34 views
6

Tôi tự hỏi, có thể hiển thị "Chọn một" theo mặc định là tùy chọn đã chọn nhưng ẩn khỏi danh sách tùy chọn khi người dùng nhấp để mở menu đã chọn không? Ý tôi là, chẳng hạn như placeholder cho trường nhập văn bản. Có anyway để làm điều đó với js hoặc cái gì khác? Cảm ơn trướcChọn menu "giả" tùy chọn

CẬP NHẬT

phép nói rằng chúng ta phải chọn menu

<select> 
<option value"">Select one...</option> 
<option value"1">Option 1 </option> 
... 
</select> 

gì tôi sẽ làm là, loại bỏ <option value"">Select one...</option> từ danh sách tùy chọn khi người dùng mở trình đơn, và trở về mặc định trạng thái khi người dùng đóng menu.

+0

bạn có thể cung cấp một ví dụ tốt hơn - câu hỏi của bạn không nhận được câu trả lời tốt * vì nó không đủ rõ ràng * –

+0

Ý tôi là, xóa tùy chọn này khi người dùng nhấp chuột để mở menu đã chọn và trở về trạng thái mặc định khi người dùng đóng menu . là nó rõ ràng? –

+0

không có gì là không rõ ràng, bạn nên nhấp vào "chỉnh sửa" để cải thiện và làm rõ câu hỏi của bạn với một ví dụ. –

Trả lời

4

Có lẽ như thế này:

<SELECT NAME="browser" VALUE="" 
    onchange="var opt=this.options[0];if(opt.getAttribute('role')==='placeholder'&&!opt.selected)opt.parentNode.removeChild(opt);"> 
    <option role="placeholder" value="">Which Web browser do you use most often?</option> 
    <OPTGROUP LABEL="Firefox"> 
     <OPTION LABEL="2.0 or higher"> 
     Firefox 2.0 or higher 
     </OPTION> 
     <OPTION LABEL="1.5.x">Firefox 1.5.x</OPTION> 
     <OPTION LABEL="1.0.x">Firefox 1.0.x</OPTION> 
    </OPTGROUP> 
    <OPTGROUP LABEL="Microsoft Internet Explorer"> 
     <OPTION LABEL="7.0 or higher"> 
     Microsoft Internet Explorer 7.0 or higher 
     </OPTION> 
     <OPTION LABEL="6.x">Microsoft Internet Explorer 6.x</OPTION> 
     <OPTION LABEL="5.x">Microsoft Internet Explorer 5.x</OPTION> 
     <OPTION LABEL="4.x">Microsoft Internet Explorer 4.x</OPTION> 
    </OPTGROUP> 
    <OPTGROUP LABEL="Opera"> 
     <OPTION LABEL="9.0 or higher">Opera 9.0 or higher</OPTION> 
     <OPTION LABEL="8.x">Opera 8.x</OPTION> 
     <OPTION LABEL="7.x">Opera 7.x</OPTION> 
    </OPTGROUP> 
    <OPTION>Safari</OPTION> 
    <OPTION>Other</OPTION> 
    </SELECT> 

OPTION với tùy chỉnh thẻ role="placeholder" phải đặt đầu tiên bên SELECT hoạt động tốt.

+0

câu hỏi được cập nhật. Vui lòng xem –

+0

yepp. một cái gì đó như thế. Nhưng chúng ta có thể lấy lại tùy chọn này và làm cách nào để đưa menu trở về trạng thái mặc định sau khi làm mới trang? –

+0

chúng ta có thể làm điều đó với '.append()', '.remove()'? –

2

Một cái gì đó như thế này?

<form> 
<select onchange="document.getElementById('placeholder').disabled=true"> 
    <option selected="selected" id="placeholder">please select something</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 
</form> 

Trong ví dụ này, tùy chọn vẫn hiển thị với người dùng nhưng không thể nhấp được.

+0

không. xóa tùy chọn này khi người dùng nhấp để mở menu đã chọn và quay lại trạng thái mặc định khi người dùng đóng menu. là nó rõ ràng? –

+0

câu hỏi được cập nhật. Hãy kiểm tra –

+0

Có lẽ 'onfocus' /' onblur' sau đó? onfocus loại bỏ các nút, onblur ràng buộc nó trở lại một lần nữa. Tuy nhiên, sau khi bạn xóa tùy chọn "giả mạo" khi người dùng nhấp vào menu, anh ấy không thể chọn tùy chọn "giả mạo" đó nữa (vì bất kỳ lúc nào anh ta nhấp lại vào tùy chọn đó, tùy chọn sẽ bị xóa), vậy tại sao bạn lại muốn cái đó? –

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