2016-02-13 69 views
1

我編碼簡單可靠的邏輯下拉和TextBox邏輯

我有一個名爲「frequencyList」 一個下拉列表中包含了像價值觀 - 「每小時」,「人民日報」,「週末畫報」,「每月」

我有一個名爲「frequencyCount」 的文本框,它必須只接受數字。

現在我需要的邏輯是 - 如果 用戶選擇從下拉 文本框只能接受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"); 
      } 
     } 
    } 
}); 

回答

0

試試這個,它會幫助你

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

 
    if(freq==1 && (num <1 || num >23)) { 
 
    error = 1; \t \t \t \t \t 
 
    } 
 
    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();" />

+0

謝謝主席先生:) –