2013-05-13 64 views
2

我有我工作的一個基本點計數器部件。我有一個早期的問題得到了回答,以幫助我移動。但我有一個最後的問題。基本上,我有一個函數將返回true或false,但我需要第三個選項。如何寫一個jQuery函數,可以返回3個可能的選項

的邏輯是:

  • 如果輸入字符數在範圍內,用戶將獲得點
  • 如果用戶編輯並計算範圍內住宿沒有新的點
  • 如果用戶編輯和計數超出範圍,然後用戶失去點

我想我有這個權利,只是不知道如何完成該功能。

http://jsfiddle.net/jNtJA/8/

var check = false; 

function titleInc() { 
    var length = $('#title').val().length; 
    if (length >= 5 && length <= 10 && !check) { 
     check = true; 
     return true; 
    } else if (check && length < 5 && length > 10) { 
     // Set the function to return DECREMENT 
    } else { 
     return false; 
    } 

    $('#title').blur(function() { 
     var current = parseInt($('#end_val').val(), 10); 
     if (titleInc()) { 
      $('#end_val').val(current + 12); 
     } else if(){ 
     // THERE NEEDS TO BE A WAY TO DECREMENT 
     } 
    }); 

}); 
+0

如何返回多少? – SLaks 2013-05-13 19:26:05

+0

的Javascript可以返回數字,以及布爾 – 2013-05-13 19:26:57

回答

3
var options = { 
     increment: 1, 
     decrement: 2, 
     doNothing: 3 
    }; 

function titleInc() { 
    var length = $('#title').val().length; 
    if (length >= 5 && length <= 10 && !check) { 
     check = true; 
     return options.increment; 
    } else if (check && length < 5 && length > 10) { 
     return options.decrement; 
    } else { 
     return options.doNothing; 
    } 

    $('#title').blur(function() { 
     var current = parseInt($('#end_val').val(), 10), 
      option = titleInc(); 
     if (option === options.increment) { 
      $('#end_val').val(current + 12); 
     } else if(option === options.decrement){ 
      $('#end_val').val(current - 12); 
     } 
    }); 
+2

這是一個優雅和擴展的解決方案 – jacktheripper 2013-05-13 19:30:51

+0

我這個搞砸但下降幅度不會出現正常工作...我缺少的東西:http://jsfiddle.net/8mPLJ/ – 2013-05-14 02:59:09

+0

'長度<20 &&長度> 120'。這是說的長度必須小於20和大於120。我想你的意思小於20或大於120。而且,'dialCheck = TRUE'是賦值,而不是布爾邏輯。您可能需要'dialcheck &&(長度<20 ||長度> 120)' – 2013-05-14 03:08:12

相關問題