我编写了一个简单的可靠逻辑
我有一个名为" frequencyList"的DropDown列表 其中包含如下值 "每小时","每日","每周","每月"
我的文本框名为" frequencyCount" 必须只接受数字。
现在我需要的逻辑是 - 如果用户选择"每小时" DropDown中的选项 TextBox必须只接受1-23 else throw error,
之间的整数值如果用户选择"每日",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");
}
}
}
});
答案 0 :(得分:0)
试试这个,它会帮助你
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();
}
}
&#13;
<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();" />
&#13;