jQuery / Bootstrap弹出窗口向运行费用计算器添加费用

时间:2014-10-22 14:06:14

标签: javascript jquery twitter-bootstrap

好吧,出于某种原因,我不能让它在这个例子中正常工作.. 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">&times;</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');
        });
    });

1 个答案:

答案 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');
        });
    });