2014-08-16 5 views
-1

Я пытаюсь вызвать функцию SendManessageToPerson при отправке формы «Отправить». «SendAMessageToPerson» - это еще одна функция Javascript на классической странице ASP. Как вызвать функцию внутри функции в Javascript? Извините - я новичок в Javascript и классическом ASP.Вызов функции внутри функции - Javascript

// следующий отрывок из функции представить если (hasAllergy) {

 if (confirm("Are you sure you want to include peanuts?")) { 
      var checkPersonIsComing = checkPersonIsComing(personId, eventId); 
      //checkPersonIsComing function returns a true or false 

      if (checkPersonIsComing = 'true') 
      { 
       alert("True"); 
       SendAMessageToPerson; //Am I calling this function correctly? 
       return true; 
      } 

      else { 
       return false; 
      } 
     } 
+3

изменить SendMessageToPerson(); вам также может потребоваться передать параметры, если есть –

+5

А также 'checkPersonIsComing === true' ... –

+0

В Javascript? Разве он не равен? – Anonymous10000

ответ

0
  • Вы должны добавить () функционировать вызов для вызова его. Просто набрав имя функции не будет на самом деле вызвать функцию и использовать

  • == Использование или ===, а не =.

"===" is much more faster than "==".

Попробуйте этот код:

function SendAMessageToPerson() { // I'm sure this function is already made. 
    //code here.. 
} 


function anotherFunction() { 

    if (confirm("Are you sure you want to include peanuts?")) { 
     var checkPersonIsComing = checkPersonIsComing(personId, eventId); 
     //checkPersonIsComing function returns a true or false 

     if (checkPersonIsComing === 'true') // = is for assignment and == or === is for comparison 
     { 
      alert("True"); 
      SendAMessageToPerson(); //This is the correct way to call a function. 
      return true; 
     } 

     else { 
      return false; 
     } 
    } 
} 
0

checkPersonIsComing функция теряется при назначении его результат в переменную с тем же именем. Он будет восстановлен после выхода из функции (. Предполагается, что ваш код находится в функции)

Если checkPersonIsComing возвращает логическое значение истина/ложь, вы можете проверить это следующим образом:

if(checkPersonIsComing(personId, eventId)) 

Это эквивалентно это:

if(checkPersonIsComing(personId, eventId) === true) 

Вот упрощенная версия, которая также корректирует SendAMessageToPerson вызов путем добавления скобок:

if (confirm("Are you sure you want to include peanuts?")) { 
    if(checkPersonIsComing(personId, eventId)) { 
     alert("True"); 
     SendAMessageToPerson(); 
     return true; 
    } 

    else { 
     return false; 
    } 
} 

Если SendAMessageToPerson ожидает параметр, поместите его между круглыми скобками.

Это также хорошая практика, совместимая с camelCase. Рассмотрим переименование SendAMessageToPerson как sendAMessageToPerson.

0

Вы не вызываете свою функцию правильно. вызываемая функция всегда выполняется как

SendAMessageToPerson(<parameters if any>); <------- Notice these brackets. 

Так сделать свой вызов, как SendAMessageToPerson(); также ваше условие if не сформировано правильно. если вы пишете

if (checkPersonIsComing = 'true') 

вы не думаете, что это утверждение совпадает с назначением переменной «checkPersonComing» на значение "правда. Таким образом, при помещении внутри оператора if всегда возвращайте TRUE.

Чтобы использовать это условие ===, а не =.

0

оповещения является функцией вы уже называете из вашей функции, которая принимает один параметр (строка для предупреждения) ...

Так вы подобная вещь для вашей функции ... SendAMessageToPerson();

Если функция не имеет параметров, то выше будет работать, или же добавить в параметрах нуждается функция ...

SendAMessageToPerson (param1, param2);

Смежные вопросы