私は JavaScript を初めて使用し、フォームに複数の値を返すのに問題があります。これが私のコードです:
フォーム:
<form name="form1">
First option
<input type="text" size="20" name="OptA" rows="1">
Second option
<input type="text" size="20" name="OptB" rows="1">
<input type="button" name="calc" value="Calculate" onclick="Evaluate(document.form1.OptA, document.form1.OptB, document.form1.TheStr);">
<input type="text" size="5" name="TheStr" readonly><input type="text" size="5" name="TheSte" readonly>
</form>
スクリプト:
function Evaluate(OptA, OptB, TheStr)
{
var A_Count = 0;
var B_Count = 0;
var C_Count = 0;
var D_Count = 0;
var Str1 = 0;
var Str2 = "";
var Str3 = 0;
var Str4 = "";
var Char1 = "";
var Char2 = "";
var Char3 = "";
var Char4 = "";
var Total = 0;
var TheOptions = OptA.value + OptB.value;
var A1 = "";
TheStr.value = "";
TheOptions = TheOptions.toUpperCase();
for (var i = 0; i < TheOptions.length; i++)
{
if (TheOptions.charAt(i) == 'A')
{ A_Count++; }
else if (TheOptions.charAt(i) == 'B')
{ B_Count++; }
}
Str1 = "" + A_Count+B_Count;
Str2 = "";
while ((Str1.length > 2) & (Count < 20))
{
Str2 = "";
for (var i = 0; i < Str1.length - 1; i++)
{
Char2 = Str1.charAt(eval(i+1));
Str2 = Str2 + (parseInt(Str1.charAt(i)) + parseInt(Str1.charAt(eval(i+1))));
}
Count++;
Str1 = Str2;
}
if (Count > 19)
{
TheStr.value = '0%';
}
else
{
TheStr.value = parseInt(Str2,10) + '%';
}
for (var i = 0; i < TheOptions.length; i++)
{
if (TheOptions.charAt(i) == 'C')
{ C_Count++; }
else if (TheOptions.charAt(i) == 'D')
{ D_Count++; }
}
Str3 = "" + C_Count+D_Count;
Str4 = "";
while ((Str3.length > 2) & (Count < 20))
{
Str4 = "";
for (var i = 0; i < Str3.length - 1; i++)
{
Char4 = Str3.charAt(eval(i+1));
Str4 = Str4 + (parseInt(Str3.charAt(i)) + parseInt(Str3.charAt(eval(i+1))));
}
Count++;
Str3 = Str4;
}
if (Count > 19)
{
TheSte.value = '0%';
}
else
{
TheSte.value = parseInt(Str2,10) + '%';
}
TheStr=(TheStr.value, TheSte.value)
}
何らかの理由で、最初の入力ボックスに値を返すだけで、2 番目の入力ボックスは空白のままです。私の問題は、複数の値を返す方法と、それを 2 つの入力ボックスに解析する方法を理解することだと思います。助言がありますか?