-1

私が目指しているのは、フルタイムとパートタイムの2つのオプションのいずれかを選択したときに他のdivを表示することです

可能であれば、ユーザーがパートタイムを選択すると、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]をチェックしてください..

量を示す2つのクラスを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. プルダウンの選択に基づいてフィールド値を処理します。

これらの2つの問題は、一般的に次のように対処できます(snippitごとに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 に答える