1

私の HTML フォームには、さまざまな選択とラジオ ボックスに基づく料金を含む読み取り専用フィールドがあります。

<input name="AdultFee_1" type="text" class="tabfont_right" id="AdultFee_1" value="0" size="10"  readonly="readonly" />

次の JavaScript (簡潔にするために短縮) を使用して料金を割り当て、AdultFee_1 に表示します。

function GetField (FieldID)
{
  return document.getElementById(FieldID);   
} //endfunction GetField (FieldID)

function CalcAdultFee (EntryID)
{
var fee=0.00;

// Retrieve data values from the form.
var AdultRegType = GetField ("AdultRegType_" + EntryID);
var AdultTSCredit = GetField ("AdultTSCredit_" + EntryID);
var AdultPrayerRetreat = GetField ("AdultPrayerRetreat_" + EntryID);
var AdultFee = GetField ("AdultFee_" + EntryID);

// Check that the current date is before the early-bird cutoff.
if (new Date() < new Date(2012, 8, 29)) {

  // Determine the fee based on the registration type selected. Add costs for Temple School 
  // Credit and Adult Prayer Retreat if selected. If the user is only going to the Friday
  // Friday prayer retreat, do not add the additional option if selected.
  switch (AdultRegType.value) {
      case "Adult Registration": 
        fee = 85.00 + parseFloat((AdultTSCredit.checked) ? 10 : 0) + parseFloat((AdultPrayerRetreat.checked) ? 35: 0);
        break;
      case "College Student": 
        fee = 25.00 + parseFloat((AdultTSCredit.checked) ? 10 : 0) + parseFloat((AdultPrayerRetreat.checked) ? 35: 0); 
        break;
      case "IHQ/Field Staff": 
        fee = 42.50 + parseFloat((AdultTSCredit.checked) ? 10 : 0) + parseFloat((AdultPrayerRetreat.checked) ? 35: 0); 
        break;
      case "ONLY Friday Prayer Retreat": 
        fee = 35.00 + parseFloat((AdultTSCredit.checked) ? 10 : 0); 
        break;
      default:
        fee = 0.00;
  } //endswitch (RegType)

// elseif (new Date() < new Date(2012, 8, 29))
}//endif (new Date() < new Date(2012, 8, 29))

AdultFee.value = fee;
CalcGrandTotal();

} //endfunction CalcAdultFee (RegType)

IE8 の問題は、ユーザーがフィールドをクリックするまで新しい値がフォームに表示されないことです。これは、IE9、FF12、および Safari でうまく機能するようです。私は何かが欠けているに違いない。私は何をしますか?

4

0 に答える 0