私のjqueryに問題があります...この関数は他の要素ではうまく動作しますが、範囲入力ではうまく動作しません。私は、値を計算したいと私はその範囲入力でjqueryをトリガする最善の方法
<input type="range" name="range" id="range" min="0" max="<?php echo $max_range; ?>" oninput="calc_happy()">
<input type="number" name="range" id="ranged" value=""oninput="calc_happy()">
<select name="work_value" id="work_value" onchange="calc_happy()">
<option value="-1.0">Low work</option>
<option value="-1.2">Easy work</option>
<option value="-1.4">Normal work</option>
<option value="-1.6">Hard work</option>
</select>
そして、ここのために他の値にアクセスする必要があるのJsです:スクリプトは、選択入力のためではなく、他のためによく働いている
<script>
function calc_happy(){
var selected = $('#work_value').val();
var ranged = $('#range').val();
var happy = Math.round(selected*ranged);
var nhappy = <?php echo $happy-$wood_minus;?>+happy;
$('#w_stats td').eq(7).html(Math.abs(happy));
$('#w_stats td').eq(5).html(selected);
//calcul new happy
$('p4').html(nhappy);
$('p2').html(happy);
if(nhappy <= 1){
$('#img').attr("src","../design/images/stats/sad.bmp");
}
}
</script>
<script>
window.onload = function() {
$('#work_value').val('<?php echo $wood_w; ?>');
$('#range').val('<?php echo $wood_minus/$wood_w; ?>');
$('#ranged').val('<?php echo $wood_minus/$wood_w; ?>');
}
</script>
<script>
function putvalue(){
$('#ranged').val($('#range').val());
}
function putvalue2(){
$('#range').val($('#ranged').val());
}
</script>
私の貧弱なコーディングを気にして、私は助言に感謝し、将来気づくでしょう。ありがとう! 編集:とコード
window.onload = function() {
$('#work_value').val('<?php echo $wood_w; ?>');
}
の作品は、あなたが行うことができます
'oninput'イベント - https://www.w3schools.com/jsref/event_oninput.asp – mihkov
あなたのコーディングについてアドバイスを求められたので、私はすべてのjQueryを使用するか、まったく使用しません。同じようなことを同じ方法で行うと、コードが明確になります。また、jQueryの 'val'を使用するのではなく、数値と範囲の入力に' value = "<?php echo $ wood_w;?>" 'を埋め込むこともできますが、selectは少しトリッキーです。 'val'ルート。 –
ありがとう、ドン!あなたは本当に私のコードを簡素化 –