Javascript 在validate函数中调用函数

Javascript 在validate函数中调用函数,javascript,Javascript,我试图调用表单验证函数中的函数,但它不起作用。如果valid为true,则应调用confirm_submit函数 $(document).ready(function() { $("#dialog").dialog({ autoOpen: false, buttons : { "Confirm" : function() { $('#form').submit(); }, "Cancel" : function() { $(this).

我试图调用表单验证函数中的函数,但它不起作用。如果valid为true,则应调用confirm_submit函数

$(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();
}
}

这是因为
确认提交
的定义范围在
文档.ready
事件中。将定义移动到
}之后右上方
函数validate(){

这基本上就是你正在做的:

function x() {

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

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

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

你能描述一下它是如何工作的吗?这比仅仅说“它不工作”要有用得多。没有调用函数confirm_submit。如果我有$(“#dialog”)。dialog('open');在confirm_submit函数之外,对话框打开OK。我还尝试返回confirm_submit();省略if-valid条件..请注意,如果我用一个正常的确认警报替换if(valid){…}等,例如返回确认('confirm submit');这很好,很好,现在对话框打开了,但是表单刚刚提交…我想这是目前的另一个问题。