2011-06-21 33 views
7

Tôi đang hiển thị hộp xác nhận trong ứng dụng của mình. Khi người dùng nhấp vào Okay, tôi đóng cửa sổ
khi người dùng nhấp vào Cancel, tôi không muốn làm gì ngoài việc ở trên cùng một trang.Cách xác định KHÔNG GHI CHÚ trong JavaScript

Tôi nên viết gì thay cho DO_NOTHING?

<a href="#" onclick="confirm('Do you wan to close the application ?')?window.close():DO_NOTHING')">Close the application ?</a> 

Nếu tôi để trống thì nó không hoạt động. Nếu tôi viết bất kỳ chuỗi ngẫu nhiên nào nó hoạt động nhưng hiển thị lỗi string undefined.

Trả lời

12

Chỉ có điều này thay vì:

onclick="if (confirm('Do you wan to close the application ?')) window.close();" 

Không có điểm của việc sử dụng các x?y:z nếu bạn không có ý định sử dụng nó "hoàn toàn".

16

Hãy thử sử dụng void(0)

<a href="#" onclick="confirm('Do you wan to close the application ?')?window.close():void(0)')">Close the application ?</a> 
+0

Nó làm việc. Xin lỗi tôi đã kiểm tra sau. – xyz

+1

'void' là toán tử, không phải là hàm. Không cần một toán tử nhóm để 'void 0' là đủ. Có câu trả lời tốt hơn cho câu hỏi, nhưng câu trả lời này tốt hơn hầu hết. – RobG

0

Tôi nghĩ đơn giản return hoặc return false nên làm.

Tôi thường không sử dụng javascript nội tuyến, nếu mã onClick nằm trong một hàm được gắn với sự kiện onClick, có thể bạn sẽ sử dụng Event.cancel() hoặc tương tự ... (Nếu đó là liên kết thực tế, nó sẽ không làm bất cứ điều gì anyway nếu sự kiện này sục qua, chỉ nhảy đến một neo trống không existen)

+0

Nếu tôi thêm bất kỳ điều này thì ngay cả 'xác nhận' sẽ không được hiển thị. – xyz

-1

Hãy thử:

onclick="return confirm('Do you wan to close the application ?')" 
+1

-1 nó sẽ chỉ trả về giá trị nhưng sẽ không thực thi 'window.close' .. vì vậy nếu người dùng nhấp vào" có ", trang sẽ được chuyển hướng đến href của liên kết – pleasedontbelong

+0

Nhưng còn về' window.close() '? –

3

thử return false; hoặc null

// What should I write in place of DO_NOTHING 
    <a href="#" onclick="confirm('Do you wan to close the application ?')?window.close():return false')">Close the application ?</a> 
+0

Nếu tôi thêm 'return false' thì ngay cả' confirm' sẽ không được hiển thị. thêm 'null' đã làm việc. Cảm ơn Thor. – xyz

1

return false; nên thực hiện thủ thuật.

0

Hãy thử một đối tượng rỗng như thế này

<a onclick="confirm('xyz')?window.close():{}">well</a> 

Trong thực tế bất kỳ điều stupit như :function(){}eval() nên thực hiện công việc tốt.

+0

Nhưng nó cho lỗi như 'x undefined'. – xyz

+0

Tôi rõ ràng có nghĩa là một biến hiện tại x :) – mihsathe

+0

Ohh..Khi nó sẽ xảy ra. Tôi muốn tránh việc sử dụng các biến khác không cần thiết. – xyz

2

void(0) hoặc null sẽ là tốt, nhưng xem xét sử dụng một đồng bằng if(confirm(...))

+0

Thanks.adding 'null' làm việc :) – xyz

-1

condition ? function call : function call không phải là cách: tác phẩm.

Nên

eval(condition? function call : function call/ blank string)

+2

eval là điều ác và thực sự không có điểm nào khi sử dụng nó ở đây. –

+0

@Shadow Wizard Tôi vừa đăng tải tại sao OP lại gặp lỗi. Biểu mẫu OP đang sử dụng sẽ không chạy, cũng như một vài câu trả lời được upvoted ở đây :). kiểm tra url http://jsfiddle.net/nhS2m/. Thử nghiệm trong ie8, ff 3.6 – amal

+0

thực sự, nhưng vấn đề là với 'void' không có bất kỳ chức năng, xem ở đây: http://jsfiddle.net/nhS2m/1/ nó hoạt động tốt với chức năng tùy chỉnh. –

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