2011-03-01 42 views
5
<select class="input" style="width:200px"> 
     <option>---</option> 
     <option onclick="window.location="link.php">one</option> 
     <option onclick="window.location="link2.php"">two</option> 
    </select> 

Nó không hoạt động trong chrome, nó hoạt động trong opera/mozilla v.v. Lời khuyên nào?Onclick không hoạt động trong Chrome

+2

Vâng, không sử dụng thuộc tính 'onclick'. – BoltClock

+7

Mỗi khi ai đó sử dụng --- làm tùy chọn, một nhà thiết kế giao diện người dùng bị nhồi máu cơ tim. Sử dụng optgroup, làm ơn. –

+2

@WTP 'optgroup' giúp tôi có tùy chọn mặc định trống như thế nào? – Tomalak

Trả lời

19
<select class="input" onchange="window.location.href = this.value" style="width:200px"> 
     <option>---</option> 
     <option value="link.php">one</option> 
     <option value="link2.php">two</option> 
    </select> 

Tôi biết không chính xác như vậy ... nhưng có sự kiện nhấp vào tùy chọn danh sách lựa chọn không phải là thực tiễn tốt. Thay vì onchange, bạn có thể có onclick là tốt ... nhưng onchange thực sự là cách để làm điều này, theo ý kiến ​​của tôi.

3

Dấu ngoặc kép trong các thuộc tính onclick không có nghĩa là dấu nháy đơn?

+0

Tại sao mã hiện tại hoạt động trong Gecko và Presto? –

+0

@Radek S: Một điều tôi có thể nghĩ đến là khoan dung phân tích cú pháp (đọc: smartassery). – BoltClock

+0

@BoltClock Tôi thực sự không thể tin rằng Gecko thông minh hơn WebKit. Ồ, có thể là vậy. :) –

4

Có lẽ cách tiếp cận an toàn nhất là sử dụng sự kiện trao đổi của phần tử chọn và sử dụng giá trị của nó để xác định hành động cần thực hiện. Tôi không nghĩ onclick hoạt động cho tùy chọn trong IE, một trong hai.

0

Onclick sẽ không hoạt động theo cách bạn đang cố gắng làm cho nó hoạt động và bạn sẽ phải tính đến sự khác biệt trong cách trình duyệt xử lý đối tượng select. Tôi khuyên bạn nên sử dụng sự kiện onchange trên đối tượng select, sau đó kiểm tra tùy chọn đã chọn. Lưu ý rằng các sự kiện này sẽ phát sinh khác nhau trên các trình duyệt khác nhau.

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