2013-11-19 3 views
0

Я пытаюсь вызвать функцию внутри функции проверки формы, но она не работает. Функция confirm_submit должна быть вызвана, если valid истинна.вызывающая функция в пределах функции проверки достоверности

$(document).ready(function() { 

$("#dialog").dialog({ 
    autoOpen: false, 
    buttons : { 
    "Confirm" : function() { 
    $('#form').submit(); 
     }, 
    "Cancel" : function() { 
    $(this).dialog("close"); 
    } 
} 
}); 


function confirm_submit(){ 
     $("#dialog").dialog('open'); 
} 

}); 


function validate(){ 
valid = true; 

if (document.form.number.value == ""){ 
    alert ("You need to complete the Number field."); 
    valid = false; 
    return valid; 
} 

if(valid){ 
confirm_submit(); 
} 
} 
+1

Не могли бы вы описать _how_ это не работает? Это гораздо более информативно, чем просто сказать «это не работает». –

+1

Функция confirm_submit не вызывается. Если у меня есть диалог $ ("# dialog"). ('Open'); вне функции confirm_submit открывается диалоговое окно. – IlludiumPu36

+0

Я также попробовал вернуть confirm_submit(); оставляя условие if valid. – IlludiumPu36

ответ

1

Это потому, что ваше определение confirm_submit является областью действия внутри document.ready события. Переместите определение после }); прямо над function validate(){.

Это в основном то, что вы делаете:

function x() { 

    function y() { 
     console.log('y') 
    } 

    console.log('x'); 
    y(); 
} 

function z() { 
    console.log('z'); 
    y(); // throws: ReferenceError: y is not defined 
} 
+0

Да, это работает, теперь диалог открывается ОК, но формы просто отправляются ... Наверное, это еще одна проблема. – IlludiumPu36

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