私はJSとjQueryにかなり慣れていないので、これは初歩的な質問かもしれません。私は WordPress テーマを構築しています。オプション ページでは、ユーザーが必要なフッター ウィジェット スロットの数を選択できます。これを X と呼び、X の可能な値は 1 ~ 6 です。X=4 の場合、各スロットの幅を指定できる 4 つの入力を表示します。
また、ユーザーが 100% かどうかを常に把握できるように、すべてのスロットの現在の合計も表示します。それを行うための私のルーチンは単純ですが、おそらく効率的ではありません. おそらくループでこれを行うことができることはわかっていますが、今のところ、リテラル入力を追加する方法しか理解していません: input_1 + input_2 + input_3 など.
これは onChange および keuyup イベントで正常に動作しますが、問題は、ページの読み込み時に、ルーチンが表示される入力の数を認識せず、6 つすべてが存在しない場合、値が正しく追加されないことです。このルーチンを変更して、入力が使用されていない場合に値 0 を想定するようにする必要があります。つまり、X=4 の場合、input_5 と input_6 は非表示になります。
function displaytotal() {
var num = 0;
num = parseFloat($('#wa1').val(),10) +
parseFloat($('#wa2').val(),10) +
parseFloat($('#wa3').val(),10) +
parseFloat($('#wa4').val(),10) +
parseFloat($('#wa5').val(),10) +
parseFloat($('#wa6').val(),10);
num = Math.round(num);
if( isNaN(num) ) {
$('#total100').val('???');
} else {
$('#total100').val(num);
if( $('#total100').val() == 100 ) {
$('#total100').css({"color":"green"});
} else {
$('#total100').css({"color":"red"});
}
}
}