2013-10-03 27 views
26

Vì vậy, tôi thấy rất nhiều mã JavaScript (đã viết một số bản thân mình) mà không một cái gì đó giống nhưjavascript trả về true hoặc trả về false khi nào và cách sử dụng?

<script> 
function CallSomeFunction() 
{ 
    //function body 
} 

$(document).ready(function() { 
callSomeFunction(); 
return false; 
}); 

và vào những thời điểm khác:

callSomeFunction(); 
return true; 

Về cơ bản tôi chưa bao giờ hiểu việc sử dụng thực sự của trả về true/false sau khi gọi hàm trong JavaScript. Tôi đã giả định một số loại ma thuật tôi cần các chức năng của mình để chạy tốt.

Vì vậy, tôi muốn biết lý do tại sao? tại sao chúng ta sử dụng trả về true hoặc trả về false sau khi gọi hàm JavaScript?

+7

Tùy thuộc vào ngữ cảnh. Có lẽ là hủy bỏ hành động. AKA 'onclick =" return false "' dừng nhấp chuột để thực hiện tác vụ mặc định. – epascarello

+1

Hàm có thể trả về một giá trị. Một số điều làm điều gì đó với giá trị trả về đó. Nó không thực sự có nghĩa là bất cứ điều gì đặc biệt riêng của mình ngoài những gì nó nói. – Ryan

+0

câu hỏi này cũng có thể giúp ích [Hiệu ứng của việc thêm trả về false vào sự kiện onclick] là gì (http://stackoverflow.com/questions/128923/whats-the-effect-of-adding-return-false-to- một onclick-sự kiện) – light94

Trả lời

23

Tôi nghĩ rất nhiều lần khi bạn nhìn thấy mã này, đó là từ những người có thói quen xử lý sự kiện cho các biểu mẫu, nút, đầu vào và những thứ thuộc loại đó.

Về cơ bản, khi bạn có một cái gì đó như:

<form onsubmit="return callSomeFunction();"></form> 

hoặc

<a href="#" onclick="return callSomeFunction();"></a>` 

callSomeFunction() trả về true, thì form hoặc a sẽ gửi, nếu không nó sẽ không.

Mục đích chung rõ ràng hơn khác để trả về true hoặc false do kết quả của hàm là vì chúng được kỳ vọng trả về boolean.

+3

Cảm ơn bạn đã vượt qua các điểm trên ... tôi cũng tìm thấy liên kết này đã cho tôi sự hiểu biết tốt hơn: http: // css-tricks.com/return-false-and-prevent-default/ – oliverdejohnson

15

Mã của bạn không có ý nghĩa, có thể do mã không nằm trong ngữ cảnh.

Nếu bạn có nghĩa là mã như thế này:

$('a').click(function() { 
    callFunction(); 
    return false; 
}); 

Các sai trở lại sẽ trả về false đến nhấp sự kiện. Điều đó yêu cầu trình duyệt ngừng theo dõi các sự kiện, như theo một liên kết. Nó không có gì để làm với các cuộc gọi chức năng trước đó. Javascript chạy từ trên xuống dưới nhiều hơn hoặc ít hơn, do đó, một dòng không thể ảnh hưởng đến dòng trước đó.

+2

"Javascript chạy từ trên xuống dưới nhiều hơn hoặc ít hơn" - ngoại trừ khi cẩu có liên quan :) Không áp dụng cho câu trả lời này mặc dù –

10

trả về true hoặc false cho biết liệu thực thi có nên tiếp tục hay dừng ngay tại đó. Vì vậy, chỉ là ví dụ

<input type="button" onclick="return func();" /> 

Bây giờ nếu func() được định nghĩa như thế này

function func() 
{ 
// do something 
return false; 
} 

sự kiện nhấp chuột sẽ không bao giờ được thực thi. Ngược lại nếu trả về true được viết thì sự kiện click sẽ luôn luôn được thực hiện.

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