簡體   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