2016-06-23 11 views
1

JavaScript関数に入力の値を制限:私は私の雇用については、次のWebアプリ作成してい

https://jsfiddle.net/kupe2rLL/3/

はそれが仕組み:機会を逃したが、エンゲージ結果フィールドユーザーが会社情報セクションに情報を入力すると、動的に入力されます。

問題:私は、アプリをプログラムする必要があるので、入力が値1未満と計算する際を変数RevenueYearをjobsRecovered より大きい3値を取りませんビジネスに変数のみ。

<input type="text" id="yearsOpen" name="yearsOpen" class="form-control" onchange="calculateAll()" required>      

var jobsRecovered = (averageJobs * 50) * recovery * yearsOpen; 
var revenueYear = jobsRecovered * jobValue; 

好ましく、Iは、フォーム入力の0から無限大に任意の値を受け入れるが、その後1最小限にその変数の値を変更するビジネス入力フィールドに年を必要とします jobs変数とRevenueYearの計算を行うときは、最大3となります。可能であれば、JavaScript関数を使用してこのソリューションを実装したいと思いますが、代替ソリューションを公開しています。

Iは、研究と実装以下溶液を、残念ながら、これは唯一分制限 - フォーム自体の入力の最大範囲:

input.addEventListener('change', function(e) { 
    var num = parseInt(this.value, 10), 
    min = 1, 
    max = 3; 

    if (isNaN(num)) { 
     this.value = ""; 
     return; 
    } 

    this.value = Math.max(num, min); 
    this.value = Math.min(num, max); 
}); 

をどのような援助が理解されるであろう。 (注:私のプログラミング経験は初心者レベルです)

+0

あなたのコードはフロントエンドにとってうまくいくようです。バックエンドには何を使用していますか? –

+0

JavaScriptを使ってこの修正を実装しようとしていますが、可能であればPHPやその他の真のバックエンド言語を使用する必要はありません。申し訳ありませんが、私は説明の中で正しい専門用語を使用していないかもしれません。 –

+0

varを使ってminとmaxを宣言するのを忘れないでください。 – progysm

答えて

0

変数値の範囲を制限するには、if-elseステートメント、または値としてフィルターのように動作する3値操作を渡すことができます。

if (yearsOpen <= 3) ? (if (yearsOpen < 1) ? (yearsOpen = 1) : (yearsOpen = yearsOpen)) : (yearsOpen = 3); 

小さい声明if (n <= 3) ? (if (n < 1) ? (n = 1) : (n = n)) : (n = 3);

のif-else形式:理にかなっている

if (yearsOpen <= 3) { 
    if (yearsOpen < 1) { 
     yearsOpen = 1; 
    } else { 
     yearsOpen = yearsOpen; 
    } 
} else { 
    yearsOpen = 3; 
} 

希望。

関連する問題