-2

name =にキャプチャできるようにしたいのですがformdesc、数値ではなくテキストであるオプション値ですが、以下の価格ポイントを計算するには数値が必要です。正しく計算され(JSの下)、オプション値を数値(HTML)ではなくテキストのみとしてキャプチャするように変更する方法はありますか?

必要なもののサンプル:

    <select id="apparelType" name="formdesc">
    <option selected="selected" value="na">Select</option>
    <option value="tshirt">T-Shirt</option> 

しかし、私のJSを壊します!

HTML :(私が今持っているもの)

<select id="apparelType" name="formdesc">
    <option selected="selected" value="na">Select</option>
    <option value="0">T-Shirt</option>
    <option value="1">Shorts</option>
    <option value="2">Hat</option>
    <option value="3">Bag</option>
</select>
<input id="numb" type="number" name="formterm">
<id="tot"><Total: $0.00&nbsp;>

JS:

<script type="text/javascript">// <![CDATA[
// 
$(document).ready(function(){
                          $('#numb').keyup(function(){
                                                        var appVal = new Array();
                                                        appVal[0] = 15; <--[tshirt]
                                                        appVal[1] = 20;
                                                        appVal[2] = 25;
                                                        appVal[3] = 30;
                                                        var cost = 0;
                                                        var fmapVal = $('#apparelType').val();
                                                        if (fmapVal == 'na')
                                                        { alert ('Please select an apparel type.');
                                                        }
                                                        else
                                                        {
                                                            cost = appVal[fmapVal];
                                                        };
                                                        //alert(cost);
                                                        var getNumb = $('#numb').val();
                                                        var baseTotal = cost * getNumb;
                                                        var getTax = baseTotal * .06;
                                                        var getTotal = baseTotal + getTax;
                                               $('#tot').html('Total: $' +  getTotal.toFixed(2));
                                                        $('#formbal').val(getTotal.toFixed(2));
                                         });
           });
  // ]]></script>
4

3 に答える 3

0

オプション名を取得する必要がある場合は、必要なvalものではありません。代わりにこれを試してください:

var optionName = $('#apparelType').find('option:selected').text();

私があなたを正しく理解したことを願っています(それは難しいですが)。

于 2013-03-09T16:20:39.787 に答える
0
<form>
<select id="apparelType" name="apparelType">
    <option selected="selected" value="na">Select</option>
    <option value="0">T-Shirt</option>
    <option value="1">Shorts</option>
    <option value="2">Hat</option>
    <option value="3">Bag</option>
</select>

<label for="numb">Total: <span>$</span></label>
<input id="numb" type="number" name="formterm" value="0.00" >
<input id="pretaxTotal" type="hidden" value="0.00" >
<br>
<textarea id="formdesc" name="formdesc" rows="12" cols="20"></textarea>
</form>


<script type="text/javascript">

  $('#apparelType').change(function(){
    var apparelType = $('#apparelType');
    var fmapVal = apparelType.val();

    if (fmapVal == 'na') {
      alert('Please select an apparel type.');
    } else {
      var appVal = [ 15, 20, 25, 30 ];
      var description = apparelType.find('option:selected').text();
      var cost = appVal[fmapVal];

      var pretaxTotal = parseInt($('#pretaxTotal').val());
      var subtotal = pretaxTotal + cost;
      var updatedTotal = ( subtotal * 1.06 ).toFixed(2);

      $('#pretaxTotal').val(subtotal);
      $('#numb').val(updatedTotal);

      $('#formdesc').append(description + '\n');
    }
  });

  /* The following code is cosmetic. Makes dollar sign appear to be inside the input field */
  $('label > span').css('position','relative').css('left','20px').css('font-size','80%');
  $('input[type=number]').css('padding-left','15px');

</script>
于 2013-03-09T16:52:55.883 に答える
-1

渡されたテキスト文字列からコストを取得するために、caseステートメントを含む関数を使用できます。

function getVal(value) {
    switch(value) {
        case 'tshirt':
            cost = 15;
            break;
        case 'shorts':
            cost = 15;
            break;
        case 'hat':
            cost = 15;
            break;
        case 'bag':
            cost = 15;
            break;
        default:
            cost = 'Please select an option...';
            break;
    }
    return cost;
}

次に、ifステートメントでを使用しますcost = getVal(fmapVal);

于 2013-03-09T16:20:50.283 に答える