2014-03-03 27 views
0

我在以下功能的jQuery在函數返回越往上布爾值的鏈

function vali(id) { 
    $(id).bind("jqv.field.result", function(event, field, errorFound, prompText) { 
     $(id).removeClass('validationError'); 
     if(errorFound) { 
      $(id).addClass('validationError'); 
      return false; 
     }; 
     return true; 
    }); 
} 

我在一個複雜的形式添加驗證類來輸入適當地設定樣式當輸入是無效。我也想根據這個返回一個真或假的值。 'validationError'類正被添加到輸入正確,但我不能返回布爾值,因爲我懷疑我在這裏調用函數內的函數,因此需要返回值到更高階的函數?像「return.return false;」這樣的顯然這不起作用,但你得到我在這個想法。也許我走了嗎?

如果我引用特定輸入地說如:

console.log(vali('#cause-name')); 

的validationError造型的作品,但我在控制檯中「未定義」。由於

回答

1

這應該工作:

function vali(id) { 
     var valid = true; 
     $(id).bind("jqv.field.result", function(event, field, errorFound, prompText) { 
      $(id).removeClass('validationError'); 
      if(errorFound) { 
       $(id).addClass('validationError'); 
       valid = false; 
      }; 
      valid = true; 
     }); 
     return valid; 
    } 
+0

這並不工作,並始終返回true。 –

+0

可能是你必須刪除valid = true;之後如果 – Ramesh