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

まず、フォームに を指定する必要があります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には次の 2 つの名前があります。

<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 に答える