我有一个表单,用户单击各个单选组,这会生成一个用 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 ;
干杯!