好吧,出于某种原因,我不能让它在这个例子中正常工作.. http://jsfiddle.net/hwcu7e05/
基本上正在发生的事情是我有一个费用计算器,当用户通过表格处理时计算费用。在示例中有一个复选框,当点击它应该弹出一个div并显示费用225美元(它在我的页面上工作由于某种原因它不会在这个例子)我想要做的是从我的下拉添加费用弹出打开一个新窗口,询问他们是否要为该价格添加..
我希望它在表单上接受我的运行总计时加价...这很难,因为表单是JavaScript,现在我正在尝试将此jQuery / bootstrap添加到其中。
对不起,我很新,并试图掌握所有这些,非常感谢任何帮助!
PS。看起来像很多代码,但这个例子是必要的(跳过示例,不必全部看:) :)
HTML
Check if
<input
type="checkbox"
id="IRF"
name='IRF'
onclick="calculateTotal()" />
<br>
<select name="SPECIAL" id="SPECIAL">
<option>Please Select</div>
<option
data-name="Animal Friend"
data-img="/images/img/AnimalFriend.png"
data-price="30"
value="1">Animal Friend</option>
<option
data-name="Aquaculture"
data-img="/images/img/Aquaculture.png"
data-price="25"
value="2">Aquaculture</option>
<option
data-name="Protect Our Oceans"
data-img="/images/img/ProtectOurOceans.png"
data-price="20"
value="3">Protect Our Oceans</option>
</select>
<!-- Modal -->
<div class="modal fade" id="modal_special" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Specialty Plate</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary accept">Accept</button>
</div>
</div>
</div>
</div>
显示费用HTML
<div id="totalPrice"></div>
的JavaScript / jQuery的/自举
function initialRegFee()
{
var initialFee=0;
var theForm = document.forms["form"];
var iRF = theForm.elements["IRF"];
if(iRF.checked==true)
{
initialFee=225;
}
return initialFee;
}
function calculateTotal()
{
var titleFees = initialRegFee();
var divobj = document.getElementById('totalPrice');
divobj.style.display='block';
divobj.innerHTML = "Estimated Transfer Fees $"+titleFees;
}
function hideTotal()
{
var divobj = document.getElementById('totalPrice');
divobj.style.display='none';
}
$(function() {
$('#SPECIAL').on('change', function() {
if ($('option:selected', this).is('[data-img]')) {
$('#modal_special').find('.modal-title').html($('option:selected', this).data('name'));
$('#modal_special').find('.modal-body').html('')
.append('<img alt="coming soon" src="' + $('option:selected', this).data('img') + '"/><br/><br/> Would you like to add this license plate for: $' + $('option:selected', this).data('price') + ' ?')
.end().modal('show');
}
});
$('.accept').on('click',function() {
//do something
$('#modal_special').modal('hide');
});
});
答案 0 :(得分:0)
我不是专家,但我在HTML中看不到任何表单标记,因此可能与它有关...而且在你的模式之前和之后你也有<div id="totalPrice"></div>
jsfiddle。你在哪里打电话hideTotal()
和calculateTotal()
?
编辑:
这对我来说很有用。 http://jsfiddle.net/hwcu7e05/5/
我从html顶部的输入标记中删除了onclick,然后将JavaScript更改为:
var specialFee = 0;
$(function(){ //added by me
$('#IRF').click(function(){
calculateTotal();
});
});
function initialRegFee()
{
var initialFee=0;
var theForm = document.forms["form"];
var iRF = document.getElementById('IRF');
if(iRF.checked==true)
{
initialFee=225;
}
return initialFee;
}
function calculateTotal()
{
var titleFees = initialRegFee();
titleFees += specialFee;
var divobj = document.getElementById('totalPrice');
divobj.style.display='block';
divobj.innerHTML = "Estimated Transfer Fees $"+titleFees;
}
function hideTotal()
{
var divobj = document.getElementById('totalPrice');
divobj.style.display='none';
}
$(function() {
$('#SPECIAL').on('change', function() {
if ($('option:selected', this).is('[data-img]')) {
$('#modal_special').find('.modal-title').html($('option:selected', this).data('name'));
$('#modal_special').find('.modal-body').html('')
.append('<img alt="coming soon" src="' + $('option:selected', this).data('img') + '"/><br/><br/> Would you like to add this license plate for: $' + $('option:selected', this).data('price') + ' ?')
.end().modal('show');
}
});
$('.accept').on('click',function() {
specialFee = $('option:selected').data('price');
calculateTotal();
$('#modal_special').modal('hide');
});
});