繁体   English   中英

如何在onchange事件中检查JavaScript函数的返回

[英]How to check the return of a JavaScript function in onchange event

如果前一个函数的返回为true,如何在onchange内调用函数,我正在尝试在onchange事件上调用许多函数,但是如果前一个函数的返回为true,则应该调用最后一个函数。 我的代码如下:

<input type="text" name='test' id="test" onchange="remLdZero('test'); validatetest(); if(checkDuplicate('test', 'url','divid')===true){ nextfunction();};"  maxlength="10"  required>

我的jvascript checkDuplicate()在下面

function checkDuplicate(fieldId,page,msgArea){  
     var fieldVal= $('#'+fieldId).val();
     $.ajax({    
        type: "POST",
        url: page,
        data: fieldId+'='+fieldVal,    
        //dataType: "html",    
        success: function(data){
            if(data == 1){
                $('#'+msgArea).css("display","none");
                if(fieldId == 'test'){
                     return true;
                }
            }else{
                $('#'+msgArea).html(data);
                $('#'+msgArea).css("display","block");
            } 
       }
    }); 
 }

注意:如果我在return true行中调用我的nextfunction()实例,它可以工作,但是当我的nextfunction()带来一个弹出窗口时,浏览器将阻止该弹出窗口,而如果我在onchange中调用nextfunction而不检查它的上一个函数是否起作用。

任何解决它的方法。

干得好。

的HTML

<input type="text" name='test' id="test" onchange="remLdZero('test'); validatetest(); checkDuplicate('test', 'url','divid', nextfunction);"  maxlength="10"  required>

JS

function checkDuplicate(fieldId,page,msgArea,callBakFn){  
 var fieldVal= $('#'+fieldId).val();
 $.ajax({    
    type: "POST",
    url: page,
    data: fieldId+'='+fieldVal,    
    //dataType: "html",    
    success: function(data){
        if(data == 1){
            $('#'+msgArea).css("display","none");
            if(fieldId == 'test'){
                 if(typeof callBakFn == "function"){
                     callBakFn();
                 }
            }
        }else{
            $('#'+msgArea).html(data);
            $('#'+msgArea).css("display","block");
        } 
   }
}); 
}

现在,仅在您的ajax请求完成并且您的结果为true之后,您的nextFunction才会执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM