2010-12-30 12 views
0

で働いていない私はjQueryコード.val(); FF

function calculateTotal() { 
    var total = 0;  
    $(".quantity").each(function() 
           { 
            if (!isNaN(this.value) && this.value.length != 0) 
            {    
            total += parseFloat(this.value);   
            }  
            });  
    $("#total_quantity").val(total); 
} 

<input onchange="calculateTotal();" name="sol1" type="text" class="result_form_textbox_small quantity" id="sol1" /> 

<input name="total_quantity" type="text" class="result_form_textbox_small" id="total_quantity" /> 

このコードは非常に良いIEで動作しているこのコードを持っているが、それはFFで働いていません。

プロンプトとは何ですか?

ありがとうございます。

EDIT:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<<script type="text/javascript" src="javascripts/jquery-1.4.2.js"></script> 
<script type="text/javascript" src="javascripts/jquery.mousewheel.js"></script> 
<script type="text/javascript" src="javascripts/jquery.jscrollpane.min.js"></script> 
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script> 
<link href="stylesheets/public.css" rel="stylesheet" type="text/css" /> 
<script type="text/jscript"> 
function calculateTotal() { 
    var total = 0;  
    $(".quantity").each(function() 
           { 
            if (!isNaN(this.value) && this.value.length != 0) 
            {    
            total += parseFloat(this.value);   
            }  
            });  
    $("#total_quantity").val(total); 
} 
</script> 
</head> 
+1

FFに何が起こりますか?エラーコンソールは何を言いますか? –

+0

もう少し詳しい情報が必要です。 –

+0

イベントハンドラをインラインで宣言するべきではありません。特に、すでにjQueryを使用しているので、JavaScriptを使用して簡単に実行できます。 – jondavidjohn

答えて

2

問題は、あなたの関数を含むスクリプトのtype="text/jscript"の代わりtype="text/javascript"を持っているということです。

4

使用

$(this).val() 

代わりの

this.value 
+0

なぜそれをしたいですか?これは完全に有効であり、テキスト入力に対して 'this.value'を行う方が効率的です。 – user113716

+0

が合意しました。 this.valueはうまく動作します。 – turtlepick

+0

ブラウザ間で問題が発生している場合、jQueryは一般的にこれらのギャップを埋めるのに適しており、効率はJavaScriptでいくつかの数値を合計することで心配しているかどうかはわかりません。 – jondavidjohn

1

これを試してみてください:

HTML

<input name="sol1" type="text" class="result_form_textbox_small quantity" id="sol1" /> 

<input name="total_quantity" type="text" class="result_form_textbox_small" id="total_quantity" /> 

JS

function calculateSum() { 

     var sum = 0; 
     //iterate through each textboxes and add the values 
     $(".quantity").each(function() { 
      //add only if the value is number 
      if(!isNaN(this.value) && this.value.length!=0) { 
       sum += parseFloat(this.value); 
      } 

     }); 
     //.toFixed() method will roundoff the final sum to 2 decimal places 
     $("#total_quantity").val(sum.toFixed(2)); 
    } 


$(document).ready(function() { 

    $('.quantity').keyup(function() { 
      calculateSum(); 
    }); 
}); 
+0

Js Fiddle:http://jsfiddle.net/flaviotsf/w7K9F – turtlepick

0

また、次を使用することができます。

$(this).attr("value","");