<form id="salary_form" name="salary_form"> <input type="text" id="min"> <input type="number" id="max"> <input type="hidden" name="s" id="salary_range"> <input type="submit"> </form>
上記のような金額の下限と上限を入力するフォームがあり、
$('#salary_form').submit(function(){ var min = $('#min').val(); var max = $('#max').val(); if(min === '' && max === ''){ $('#salary_range').remove(); } else if(min !== '' && max !== ''){ if(min > max){ $('#salary_range').val(max + '__' + min); } else { $('#salary_range').val(min + '__' + max); } } else if(min !== '' && max === ''){ $('#salary_range').val(min + '__' + max); } else if(min === '' && max !== ''){ $('#salary_range').val(min + '__' + max); } });
のようにサブミットボタンを押すと入力された上限と下限を整形してhiddenのvalueに挿入されるようにしました。
jQueryの4つにわかれている条件分岐の中で唯一2段めの
if(min !== '' && max !== ''){ if(min > max){
の部分がうまく動作しません。いつでも動作しないわけではなく、したりしなかったりという状況です。
これは、下限と上限とも空白ではなく数値が入力された状態で、かつ上限よりも下限のほうが大きい時に
$('#salary_range').val(max + '__' + min);
mixとmaxを入れ替えて表示するようにしたかったのですが、入れ替わらずに(min + '__' + max)で表示されます。例をあげると
下限100、上限5で入力された場合下限が上限よりも大きいので下限と上限をいれかえて(5__100)と表示したいのに(100__5)と表示されます。
そしてさきほども言及しましたがこれが予想通り動作したりしなかったりします。
なにが問題なのでしょう??
回答2件
あなたの回答
tips
プレビュー