如何编写一个可以返回3个可能选项的jquery函数

时间:2013-05-13 19:22:29

标签: jquery

我正在处理一个基本的积分计数器小部件。我有一个早先的问题得到了回答,以帮助我开始行动。但我有一个最后的问题。基本上,我有一个将返回true或false的函数,但我需要第三个选项。

逻辑是:

  • 如果输入字符数在范围内,则用户获得分数
  • 如果用户编辑和计数保持在范围内没有新点
  • 如果用户编辑并且计数在范围之后超出范围,则用户将丢失积分

我认为我做对了,只是不确定如何完成这个功能。

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
         }
     });

 });

1 个答案:

答案 0 :(得分: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);
         }
     });