我试图实现一个自写查询功能。关于该功能的简要说明:更改单选按钮时应重新计算两个值。它在JSFiddle中工作。 (http://jsfiddle.net/VL465/34/)jquery函数输入收音机onchange
但是现在我试图在真正的网页中实现它。但实际上我无法得到它的工作。我试图调试它,但没有磨平。
当前控制台只显示“功能加载”消息。更改单选按钮时不显示天数。
让我澄清一下当前的HTML文件:
的头,我有:
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script type="text/javascript" src="/js/functions.js"></script>
的形式是完全一样的:
<form action="/b/" method="POST" id="choseLessor">
<fieldset>
<input type="hidden" name="userLocale" value="en">
<ul>
<li><span class="rate"> € 21,29</span> <span class="note">starting at </span><span class="radio"></span><input type="radio" class="styled" name="days" value="30" data-price="21.29"><b>30 days </b></li>
<li><span class="rate"> € 23,65</span> <span class="note">starting at </span><span class="radio" style="background-position: 0px -50px;"></span><input type="radio" class="styled" name="days" value="60" data-price="23.65" checked=""><b>60 days </b></li>
<li><span class="rate"> € 26,02</span> <span class="note">starting at </span><span class="radio"></span><input type="radio" class="styled" name="days" value="90" data-price="26.02"><b>90 days </b></li>
<li><span class="rate"> € 27,20</span> <span class="note">starting at </span><span class="radio"></span><input type="radio" class="styled" name="days" value="120" data-price="27.2"><b>120 days </b></li>
</ul>
<div class="priceCalculation">
<div class="list">
<span class="type">List Price:</span>
<span class="retailPriceActual">
<div class="strikethrough">€ 49,93</div>
</span>
</div>
<div class="savings">
<span class="type">Your Savings:</span>
<span class="bookSavings" id="CalculateSavings">€ 26,28</span>
</div>
<div class="total">
<span class="type bigger">Your Price:</span>
<span class="totalPrice" id="CalculatePrice">€ 23,65</span>
</div>
</div>
<input type="submit" value="Cho" class="btn">
</fieldset>
</form>
而且functions.js的内容
$(document).ready(function() {
console.log ('Function loaded');
$("input[name=days]:radio").change(function() {
console.log ('Days recognized');
// get values
var savingPrice = 0;
var msrp = $('input[name="msrp"]').val();
var periodPrice = $('input[name="days"]:checked').data('price');
var userLocale = $('input[name="userLocale"]').val();
console.log ('UserLocale' + userLocale);
// calculate bac
savingPrice = (msrp-periodPrice).toFixed(2);
if(userLocale === 'nl')
{
savingPrice = savingPrice.replace(/\./g, ',');
periodPrice = periodPrice.replace(/\./g, ',');
}
$('#CalculateSavings').text('€ ' + savingPrice);
$('#CalculatePrice').text('€ ' + periodPrice);
});
});
控制台显示:
Function loaded
而不是更多,甚至不是当单选按钮被更改时。
我到底做错了什么?
你小提琴不起作用。 onload中不能有$(document).load。这工作:http://jsfiddle.net/mplungjan/PXCrF/ - 为什么旧的jQuery btw?另外.text()不适用于实体 – mplungjan
您是否试过将脚本元素移动到身体的底部,而不是将它们放在头部? –
如果控制台显示加载的函数,那么脚本显然会执行,不需要移动。 Peter:实际页面上是否有更多的字段,字段可能带有相同的ID?也许我们需要看到URL – mplungjan