对于我正在进行的项目,我在后台运行计算,计算我输入的2个值。然后它获取数字的结果并通过HTML中的输出标记显示它。我想知道是否可以提交输出值并将其与表单的其余部分一起发布?
<form action="test.php" method="post" oninput=" totalamount.value = Math.round(adult.value * 10) + Math.round(student.value * 7); changedue.value = Math.round(moneygiven.value - totalamount.value);">
<fieldset>
<select name="showtime" required>
<option value="" disabled="disabled" selected="selected">Performance</option>
<option value='1' type="number" >Show 1 </option>
<option value='2' type="number" >Show 2 </option>
<option value='3' type="number" >Show 3 </option>
</select>
<h4>Ammount of Adults</h4>
<input name="adult" id="adult" type="number" required>
<br />
<h4>Ammount of Students</h4>
<input name="student" type="number" required>
<br />
<h4>Money Owed</h4>
<output name="totalamount" for="adult student"></output>
<br />
<h4>Money Given</h4>
<input name="moneygiven" type="number" required>
<h4>Change due</h4>
<output name="changedue" for="totalamount moneygiven"></output>
<input type="submit" />
</fieldset>
</form>
我该怎么做?或者有没有人知道的解决方法?
答案 0 :(得分:1)
如果要将值作为表单的一部分提交,则需要为<input>
标记。考虑为其提供readonly="1"
属性,使其无法使用:
<input name="example" value="123" readonly="1">
&#13;
作为替代方案,您可以继续使用<output>
代码,同时将该值放入<input type="hidden">
,使其成为表单的一部分,但对用户不可见。
无论哪种方式,都要确保用户不能通过将自己的值替换为输入字段而不是脚本计算的值来执行意外操作。
答案 1 :(得分:0)
为此,您必须将输出存储在隐藏字段中,因为输出标记不是表单元素
List of form elements
或者您可以做的是,您可以在表格进一步处理的页面上计算它,而不是传递计算值,这样只需要传递计算所需的值
答案 2 :(得分:0)
您可以使用Javascript将该值存储在HTML标记内。
<form action = "test.php" method ="post" onsubmit="document.getElementById('xyz').value= myval1; document.getElementById('abc').value= myval2;">
<input type = "hidden" name="xyz" id="xyz" value ="">
<input type = "hidden" name="abc" id="abc" value ="">
这样做会使这些隐藏字段的值根据&#34; myval1&#34;中的值自动更改。和&#34; myval2&#34;。您还可以在表单提交中计算这些值。