我在 webflow 中的 Javascript 仅适用于第一个 div。我究竟做错了什么? (单选按钮)
My Javascript in webflow only works in first div. What am I doing wrong? (Radio buttons)
所以我在 Webflow 中为我的丹麦语网站创建了这个价格计算器。
我把 JS 写成 $('element').on('change', function() {..})
,它确实有效。但仅在第一个 Div.
我想如果我把所有 HTML 代码都放上去,那就太多了,所以我用相关代码做了一个简短的版本。
$(document).ready(function() {
var total;
$('.mulighed').on('change', function() {
total += $("[type='radio']:checked").val();
$('#total').html('Kr. ' + $("[type='radio']:checked").val());
});
});
.mulighed{margin: 25px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<div class='row'>
<input type='radio' class='mulighed' value='5'></input>
<input type='radio' class='mulighed' value='10'></input>
<input type='radio' class='mulighed' value='15'></input>
</div>
<div class='row'>
<input type='radio' class='mulighed' value='150'></input>
<input type='radio' class='mulighed' value='50'></input>
<input type='radio' class='mulighed' value='100'></input>
</div>
<div class='row'>
<input type='radio' class='mulighed' value='1000'></input>
<input type='radio' class='mulighed' value='1500'></input>
<input type='radio' class='mulighed' value='500'></input>
</div>
<p id='total'>0</p>
</form>
您需要先将值转换为整数,$(this)
指的是 change 事件正在作用的元素。
$(document).ready(function() {
var total=0;
$('.mulighed').on('change', function() {
total += parseInt($(this).val());
$('#total').html('Kr. ' +total);
});
});
更新:
以下代码也允许您减去。
$(document).ready(function() {
var total=0;
$('input').on('click', function(e) {
//e.preventDefault();
if(!$(this).data("log")){
$(this).prop("checked", true)
$(this).data("log",true)
total += parseInt($(this).val());
$('#total').html('Kr. ' +total);
}
else{
$(this).prop('checked', false);
$(this).data("log",false)
total -= parseInt($(this).val());
$('#total').html('Kr. ' +total);
}
});
});
所以我在 Webflow 中为我的丹麦语网站创建了这个价格计算器。
我把 JS 写成 $('element').on('change', function() {..})
,它确实有效。但仅在第一个 Div.
我想如果我把所有 HTML 代码都放上去,那就太多了,所以我用相关代码做了一个简短的版本。
$(document).ready(function() {
var total;
$('.mulighed').on('change', function() {
total += $("[type='radio']:checked").val();
$('#total').html('Kr. ' + $("[type='radio']:checked").val());
});
});
.mulighed{margin: 25px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<div class='row'>
<input type='radio' class='mulighed' value='5'></input>
<input type='radio' class='mulighed' value='10'></input>
<input type='radio' class='mulighed' value='15'></input>
</div>
<div class='row'>
<input type='radio' class='mulighed' value='150'></input>
<input type='radio' class='mulighed' value='50'></input>
<input type='radio' class='mulighed' value='100'></input>
</div>
<div class='row'>
<input type='radio' class='mulighed' value='1000'></input>
<input type='radio' class='mulighed' value='1500'></input>
<input type='radio' class='mulighed' value='500'></input>
</div>
<p id='total'>0</p>
</form>
您需要先将值转换为整数,$(this)
指的是 change 事件正在作用的元素。
$(document).ready(function() {
var total=0;
$('.mulighed').on('change', function() {
total += parseInt($(this).val());
$('#total').html('Kr. ' +total);
});
});
更新: 以下代码也允许您减去。
$(document).ready(function() {
var total=0;
$('input').on('click', function(e) {
//e.preventDefault();
if(!$(this).data("log")){
$(this).prop("checked", true)
$(this).data("log",true)
total += parseInt($(this).val());
$('#total').html('Kr. ' +total);
}
else{
$(this).prop('checked', false);
$(this).data("log",false)
total -= parseInt($(this).val());
$('#total').html('Kr. ' +total);
}
});
});