ユーザーがさまざまなラジオグループをクリックするフォームがあります。これにより、javascript で計算される「スコア」が生成され、フォームの上部にあるテキストボックスに現在の合計が入力されます。
フォームが送信されると、このテキストボックスの POST 値は空になるため、出力シートに移動しても表示する値はありません。
手動で入力された他のすべてのテキストボックスは正常に機能します。すべての名前/IDなどは正しいですが、フォームが送信されたときにPOST値でJSによって生成された値を正しく保持するために欠けているものはありますか?
これ(JSから移入)は機能しません:
<input name="Result_AutoFail" type="text" class="ResultsBox" id="Result_AutoFail" size="2" maxlength="2" value="<?php echo htmlspecialchars($_POST['Result_AutoFail']); ?>"/>
しかし、これ(手動で入力)は次のことを行います:
<input name="CustName" type="text" id="CustName" size="25" maxlength="25" value="<?php echo htmlspecialchars($_POST['CustName']); ?>"/>
ボックスに入力するために使用される JS は、質問ごとに次のとおりです。これは正常に機能し、ユーザーが質問ごとに各ラジオ ボタンをクリックすると、値がボックスに正しく配置され、POST に送信されません。
for (i=0;i<2;i++)
{
if (document.MonitorForm.SBI_CA027[i].checked == true)
{
CA027Selected = document.MonitorForm.SBI_CA027[i].value
}
}
if (CA027Selected == "Yes")
{
if (AutoFailCount == 0)
{
document.MonitorForm.Result_AutoFail.style.backgroundColor = "#008000";
}
else if (AutoFailCount >= 1)
{
document.MonitorForm.Result_AutoFail.style.backgroundColor = "#FF0000";
}
}
else if( CA027Selected == "No")
{
AutoFailCount = (AutoFailCount + 1);
if (AutoFailCount == 0)
{
document.MonitorForm.Result_AutoFail.style.backgroundColor = "#008000";
}
else if (AutoFailCount >= 1)
{
document.MonitorForm.Result_AutoFail.style.backgroundColor = "#FF0000";
}
}
次に、テキストボックスに次のように書き込まれます。
document.MonitorForm.Result_AutoFail.value = AutoFailCount ;
乾杯!