0

我在简单的程序中遇到困难......

我有一个简单的 html 表单,从中我得到 3 个整数值,然后使用这一行将它们提交给 JavaScript 函数 这是我正在使用的函数

<script language="javascript">
function Secured_Rescaled_Marks(form)
{
    var address = form.total_marks.value;
    window.alert(address);  
    //var secured = (rescale_marks/total_marks)*secured_marks;
    //alert('secured');
}
</script>

这是表格

<form>
<table cellpadding="3">
<tbody>
<tr>
<td bgcolor="#6699CC">
<b>Total Marks:</b>
<input name="text" name="total_marks" />
</td>
</tr>
</tbody>
</table>
</br>
<table cellpadding="3">
<tbody>
<tr>
<td bgcolor="#6699CC">
<b>Secured Marks:</b>
<input name="text" name="secured_marks">
</td>
</tr>
</tbody>
</table>
</br>
<table cellpadding="3">
<tbody>
<tr>
<td bgcolor="#6699CC">
<b> Rescale Marks:</b>
<input name="textarea" name="rescale_marks">
</td>
</tr>
</tbody>
</table>
</br>
    <input type="button" onsubmit="return Secured_Rescaled_Marks(this);" name="order" value="Secured_Rescaled_Marks??"/>

<input type="reset" value="Reset">
</form>

我需要在表单提交时计算这样的公式并提醒结果....

var secured = (rescale_marks/total_marks)*secured_marks;

任何帮助将不胜感激...

4

3 回答 3

1

首先,您应该给您的表单 a name,然后您可以使用以下常用方法之一:

document.FormName.elements["element_name"].value;//select by name
//or
document.FormName.elements[index].value;//select by index position

注意: FormName是示例中的表单名称

源码演示

然后要在你的函数中使用这个值,你需要将它从字符串转换为数字,如下所示:

var val = document.FormName.elements["element_name"].value;
val = parseFloat(val);
于 2012-04-28T15:18:17.957 回答
0

您的input标签有两个名称,即:

<input name="text" name="total_marks" />

应该:

<input type="text" name="total_marks" id="total_marks"/>

我为您添加了一个 ID,因为有了一个 ID,您可以使用document.getElementById('total_marks');

当您在检索值后进行数学运算时,您应该确保它们是数字(在您的情况下为整数),即:

var tmarks = parseInt(document.getElementById('total_marks'));
于 2012-04-28T15:24:25.337 回答
0

您的表单上有一些错误(已修复)

<form name="myform" onsubmit="return Secured_Rescaled_Marks(this);">
<table cellpadding="3">
   <tbody>
    <tr>
     <td bgcolor="#6699CC">
       <b>Total Marks:</b>
       <input type="text" name="total_marks" />
     </td>
    </tr>
   </tbody>
</table>
</br>
<table cellpadding="3">
    <tbody>
     <tr>
      <td bgcolor="#6699CC">
       <b>Secured Marks:</b>
       <input type="text" name="secured_marks">
      </td>
     </tr>
    </tbody>
 </table>
 </br>
 <table cellpadding="3">
  <tbody>
   <tr> 
    <td bgcolor="#6699CC">
     <b> Rescale Marks:</b>
      <input type="text" name="rescale_marks">
    </td>
   </tr>
  </tbody>
 </table>
 </br>
 <input type="submit" name="order" value="Secured_Rescaled_Marks??"/>
 <input type="reset" value="Reset">
</form>​

JS <script language="javascript">应该是<script type="text/javascript">

function Secured_Rescaled_Marks(frm)
{
    var rescale_marks=parseFloat(frm.rescale_marks.value);
    var total_marks=parseFloat(frm.total_marks.value);
    var secured_marks=parseFloat(frm.secured_marks.value);
    var secured = (rescale_marks/total_marks)*secured_marks;
    if(isNaN(secured)) return false;
    if(confirm(secured)) 
    {
        this.submit();
        return true;
    }
    return false; 
}​

演示。

于 2012-04-28T15:25:22.950 回答