下拉列表和文本框逻辑

DropDown and TextBox logic

本文关键字:文本 下拉列表      更新时间:2023-09-26

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

我有一个名为"频率列表"的下拉列表其中包含类似 -"每小时"、"每天"、"每周"、"每月"

我有一个名为"频率计数"的文本框必须仅接受数字。

现在我需要的逻辑是——如果用户从下拉列表中选择"每小时"选项文本框只能接受介于 1-23 之间的整数值,否则会引发错误,

如果用户选择"每日",则文本框仅接受 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();" />