Javascript вернуть false - из функции - PullRequest
2 голосов
/ 28 августа 2009

Есть ли способ сделать следующее:

validateLogin();
return false;

Но на самом деле, как это ..

validateLogin();

А вот и функция:

function validateLogin(){
if(hi=true){
return true;
}
else{
return false
}

Я хочу прикрепить эту функцию к событию отправляемой формы, поэтому, если HI равен false - я хочу вернуть false; Это означает, что форма не будет отправлена. Я знаю, что возвращение ложно; будет так, мне просто нужно знать, как я могу получить этот возврат к родительской функции?

Заранее спасибо!

Ответы [ 7 ]

6 голосов
/ 28 августа 2009

Вы можете использовать его следующим образом:

return validateLogin();

однако, как указал mmayo, не забудьте о возвращаемом значении:

event.returnValue = false;
3 голосов
/ 28 августа 2009

Вы можете в конечном итоге сделать это:

return validateLogin();

Обратите внимание, что в коде вашей функции есть некоторые ошибки (возможно, из-за упрощения кода, который вы сделали, чтобы опубликовать этот вопрос?). Вам лучше написать этот метод так:

function validateLogin(){
  ...
  return hi;
}

Обратите внимание, что если у вас есть if (hi=true) {, вы должны написать if (hi == true) { или лучше if (hi) { ...

3 голосов
/ 28 августа 2009

Я использую следующее, чтобы остановить события ...

event.returnValue = false;

cresentfresh вдохновил меня на некоторые исследования ... вот статья с матрицей совместимости.

Есть также связанные темы на SO .

2 голосов
/ 28 августа 2009

Стандартный способ остановить действие по умолчанию для события:

event. preventDefault();

Вы также можете предотвратить распространение событий с помощью event.stopPropgation (); остановить дальнейшие слушатели событий от выполнения.

http://www.w3.org/TR/2001/WD-DOM-Level-3-Events-20010823/events.html#Events-Event

Однако IE не распознает это, поэтому вы можете установить для event.returnValue значение false для IE.

например:

if (event && event.preventDefault) event.preventDefault();
event.returnValue = false;

Вы также можете вернуть false из обработчика событий для событий, встроенных в HTML.

<form onsubmit="return validateLogin()">

Однако это не считается наилучшей практикой.

Примечание: объект события передается в качестве первого аргумента в слушателе событий.

например:

function validateLogin(e) { 
   e; // is the event object
}

Для IE вам может понадобиться window.event.

function validateLogin(e) { 
   e = e || window.event; // is the event object
}
2 голосов
/ 28 августа 2009
return validateLogin();

Это должно делать то, что вы хотите.

0 голосов
/ 28 августа 2009

validateLogin () Функция

function validateLogin() {
    return hi;
}

Блок HTML

<form onsubmit="return validateLogin()">
  ...
</form>
0 голосов
/ 28 августа 2009

Попробуйте дважды == (ЕСЛИ Я == 5)

...