DropDown 和 TextBox 逻辑

DropDown and TextBox logic

我正在编写一个简单可靠的逻辑

我有一个名为 "frequencyList" 的下拉列表 其中包含类似的值 - "Hourly"、"Daily"、"Weekly"、"Monthly"

我有一个名为 "frequencyCount" 的文本框 只能接受数字。

现在我需要的逻辑是—— 如果用户从下拉列表中选择 "Hourly" 选项 TextBox 只能接受 1-23 之间的整数值,否则会抛出错误,

如果用户选择"Daily",TextBox只接受1-30之间的,依此类推

到目前为止,这是我有缺陷的逻辑,请纠正我 -

$("#frequencyCount").keypress(function(e) 
{
    //if the letter is not digit then display error and don't type anything
    if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) 
    {
        console.log("Invalid Input, It's not Digits");
    } 
    else 
    {
        //Input is Digits for sure now
        if (frequecyList == "Daily") 
        {
            if (frequencyCount >= 1 && frequencyCount <= 30) 
            {
                console.log("Valid Daily input");
            } 
            else 
            {
                console.log("Invalid frequency");
            }
        }
    }
});

试试这个,它会对你有帮助

function validate() {
  var freq = $("#frequency").val();
  var num = $("#fvalue").val();
  var error = 0;

  if(freq==1 && (num <1 || num >23) ) {
    error = 1;     
  }
  else if(freq==2 && (num <1 || num > 30) ) {
    error = 1;
  }

  if(error==1)
  {
    alert("error");
    $("#fvalue").val('');
    $("#fvalue").focus();
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="frequency">
  <option value="1">Hourly</option>
  <option value="2">Daily</option>
  <option value="3">Weekly</option>
  <option value="4">Monthly</option>
</select>
<input type="number" id="fvalue" onblur="validate();" />