从表单中获取值并在JavaScript函数中使用它

Getting Values From Form And Using It In JavaScript Function

本文关键字:函数 JavaScript 表单 获取      更新时间:2023-09-26

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

有一个简单的 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;

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

首先,您应该为您的表单提供一个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);

您的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'));

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

<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; 
}​

演示。