2016-02-28 90 views
0

我需要知道爲什麼在引用變量時,此函數不會追加我的錯誤消息。我試圖返回一些像「假」的值,但仍然不起作用。請幫助我在這裏學習一些東西。變量中的Javascript函數

function checkName(el) 
    { 
    if (/^[a-zA-Z ]+$/.test(el.val())) 
    { 
     return null 
    } 
    return el 
    } 

    $(document).ready(function() 
    { 
     $('button[name=btn-submit]').on('click', function(e) 
     { 
      e.preventDefault(); 
      var err = { 
      fn: checkName($('input[name=fn]')), 
      mn: checkName($('input[name=mn]')), 
      ln: checkName($('input[name=ln]')) 
      } 

      var isSubmit = function(){ 
       for (var key in err) { 
       if (err.hasOwnProperty(key)) { 
        if(err[key] !== null) 
        { 
        var parent_div = err[key].parent().closest('div'); 
        parent_div.append('<p id="p-error" class="error-msg">test</p>'); 
        } 
       }     
       }    
      } 
      console.log(isSubmit); 
      // 
+0

如果您需要知道這麼多,也許你應該張貼的錯誤信息和您所期望的輸出是等什麼我們實際上可以提供幫助,以及您迄今爲止所嘗試的解決方法 – millerbr

+0

您是否可以在您使用的任何瀏覽器中打開開發者控制檯,然後檢查控制檯選項卡。它應該指出錯誤(如果有的話)。這是開始調試代碼 – user3509208

+0

的好方法,您只是將某些東西(函數)分配給該變量。您不調用函數 – baao

回答

1

你永遠調用你的函數,處理err對象。你只是創建它並將該函數分配給isSubmit變量。

調用它,你需要添加()到最後,無論對函數表達式的結束(如果你的目標是將其分配給調用的isSubmit結果),或isSubmit在後console.log(如果你的目標是在那裏打電話)。

例如,要麼

var isSubmit = function(){ 
    for (var key in err) { 
     if (err.hasOwnProperty(key)) { 
     if(err[key] !== null) 
     { 
      var parent_div = err[key].parent().closest('div'); 
      parent_div.append('<p id="p-error" class="error-msg">test</p>'); 
     } 
     }     
    }    
}(); // <== Here (could be pretty easy to miss seeing this, though) 

console.log(isSubmit()); 
// Here ------------^^ 
+0

@ n4mi:你根本不需要函數,只是FWIW。 –