-1

我的目标是在选择全职和兼职两个选项之一时显示另一个div

如果可能,为每个计算不同的值当用户选择 Part time 时,PrcA 的值将更改为 PrcB

这是我使用的代码

<!====================================================================================>


<script language="javascript">
<!--//

function dm(amount) 
{
  string = "" + amount;
  dec = string.length - string.indexOf('.');
  if (string.indexOf('.') == -1)
  return string + '.00';
  if (dec == 1)
  return string + '00';
  if (dec == 2)
  return string + '0';
  if (dec > 3)
  return string.substring(0,string.length-dec+3);
  return string;
}



function calculate()
{

  QtyA = 0;  
  TotA = 0;  

  PrcA = 1280; 
  PrcB = 640; 


  if (document.form1.qtyA.value > "")
     { QtyA = document.form1.qtyA.value };
  document.form1.qtyA.value = eval(QtyA);  



  TotA = QtyA * PrcA;
  document.form1.totalA.value = dm(eval(TotA));


  Totamt = 

     eval(TotA) ;

  document.form1.GrandTotal.value = dm(eval(Totamt));


} 


//-->
</script>


<!====================================================================================>
<p>
<label for="acct" style="margin-right:90px;"><strong>Account Type<strong><font color=red size=3> * </font></strong></label>
<select name="acct" style="background-color:white;" class="validate[custom[serv]] select-input" id="acct" value="">


                <option value="Full Time">Full-Time</option>
                <option value="Part Time">Part-Time</option>
                <option selected="selected" value=""></option>

</select></p>

<!====================================================================================>
<script>
$(document).ready(function() {
    $("input[name$='acct']").select(function() {
        var test = $(this).val();

        $("div.desc").hide();
        $("#acct" + test).show();
    });
});
</script>


<!====================================================================================>
<p>
<table><tr><td>
<lable style="margin-right:91px;"># of Agent(s)<font color=red size=3> * </font></lable>
</td><td>
<input style="width:25px; margin-left:5px;" type="text" class="validate[custom[agnt]] text-input" name="qtyA" id="qtyA" onchange="calculate()" />
</td><td>
<div id="acctFull Time" class="desc">
 x 1280 = 
</div>
<div id="acctPart Time" class="desc" style="display:none">
 x 640 = 
</div>
</td><td>
$<input style="width:80px; margin-left:5px;" type="text" readonly="readonly"  name="totalA" id="totalA" onchange="calculate()" />
</p>
</td></tr></table>

我有什么办法可以做到这一点?

4

3 回答 3

1

检查这个[FIDDLE] ..

向显示金额的 div 添加了两个类。这应该使访问它们更容易。

    $(document).ready(function() {
    $("#acct").on('change', function() {
        var selVal = $(this).val();
        if (selVal == '1') { // Full Time
            $('.parttime').hide();
            $('.fulltime').show();
            $('.agent').show();
            $('.error').hide();
        }
        else if (selVal == '2') { // Part Time
            $('.parttime').show();
            $('.fulltime').hide();
            $('.agent').show();
            $('.error').hide();
        }
        else {
            $('.parttime').hide();
            $('.fulltime').hide();
            $('.agent').hide();
            $('.error').show();
        }
    });

    $('#qtyA').on('change', function() {
        var selVal = $("#acct").val();
        if (!isNaN($(this).val())) {
            var total = 0;
            if (selVal == '1') {
                total = parseInt($(this).val()) * 1280;
            }
            else if (selVal == '2') {
                total = parseInt($(this).val()) * 640;
            }
            $('#totalA').val(total.toFixed(2));
        }
        else {
            $(this).val('0');
             $('#totalA').val('0.00');
        }
    });
});​

此外,您可以完全消除香草 javascript 并使用 jQuery,这应该更容易..

于 2012-09-11T22:03:26.077 回答
0

得到了答案这是我用的

<script type="text/javascript">
$(document).ready(function(){
  $('#acct').change(function() {
    $('.box').hide();
    $('#acct' + $(this).val()).show();
 });
});
</script>
于 2012-09-11T21:53:30.237 回答
0

jsfiddle 在这里会有很大帮助。但是,听起来您正在尝试:

  1. 根据下拉选择显示/隐藏内容容器,以及
  2. 根据下拉选择处理字段值。

这两个问题通常可以这样解决(假设 jQuery,根据您的代码段):

<select id="time-select">
  <option value="full">Full-Time</option>
  <option value="part">Part-Time</option>
</select>
<div id="full-detail" class="detail">
  Full-time info.
</div>
<div id="part-detail" class="detail">
  Part-time info.
</div>
<input type="text" id="computed-value"/>

<script>
$(function() {
  "use strict";

  function computeValueBasedOn( opt ) {
    // Evaluate the computed value here...
    return opt ? "do" : "stuff";
  }

  $("#time-select").change(function(evt) {
    $(".detail").hide();
    $("#"+ this.value +"-detail").show();
    $("#computed-value").val( computeValueBasedOn( this.value ) );
  });
});
</script>
于 2012-09-11T22:04:09.917 回答