2011-01-09 76 views
-1

這段代碼有什麼問題?我的第一個功能工作正常,但第二個功能不起作用。請幫幫我。由於onchange事件不是woking

function bag1() 
{ 
var sum = 0; 
var qty = document.form1.qty.value; 
var pack = document.form1.pack.value; 
document.form1.bag.value = (qty*pack)/100; 

} 
function bag2() 
{ 
var sum = 0; 
var qty = document.form1.qty.value; 

var pack1 = document.form1.pack1.value; 
document.form1.bag1.value = (qty*pack1)/100; 
} 

這裏是HTML代碼

 <input id="item1" name="item1" type="text" maxlength="255" value=""/> 
     <input type="text" maxlength="255" value=""/> 
     <input id="weight" name="weight" type="text" maxlength="255" value=""/> 
     <input id="pack" name="pack" type="text" maxlength="255" onchange="bag1();" value=""/> 
     <input id="bag" name="bag" type="text" maxlength="255" value=""/> 
     <input id="rate" name="rate" type="text" maxlength="255" value=""/> 
     <input id="amount" name="amount" type="text" maxlength="255" value=""/>  
     <input id="element_12" name="type" type="text" maxlength="255" value=""/>  
     <input id="element_13" name="brand" type="text" maxlength="255" value=""/> 

<!-------------------------- Caculating 2th Row --------------------------------------------------------------->     


     <input type="text" maxlength="255" value=""/> 
     <input type="text" maxlength="255" value=""/> 
     <input id="weight2" name="weight2" type="text" maxlength="255" value=""/> 
     <input id="pack2" name="pack2" type="text" maxlength="255" value=""/> 
     <input id="bag2" name="bag2" type="text" maxlength="255" onchange="bag2();" value=""/> 
     <input id="rate2" name="rate2" type="text" maxlength="255" value=""/> 
     <input id="amount2" name="amount2" type="text" maxlength="255" value=""/> 
     <input id="element_12" name="type" type="text" maxlength="255" value=""/>  
     <input id="element_13" name="brand" type="text" maxlength="255" value=""/> 
    </form type="submit" value="calculator2"> 
+1

什麼情況或不會發生?你會得到什麼錯誤? – 2011-01-09 10:52:13

+0

給出了什麼錯誤信息?我不知道這是否是您複製和粘貼代碼時的錯誤,但您的

尚未開始標記。 – david4dev 2011-01-09 10:52:32

+0

我沒有gey任何錯誤。我的表單有一個開始標記。 – Kulbir 2011-01-09 11:03:03

回答

1

沒有 document.form1.bag1

,所以你不能改變它的價值...

你有幾個不存在的ID和你的腳本和HTML變量問題..

開始與此,然後構建出來: (冷凝的功能以及)

<!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 content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<title>Untitled 1</title> 
<script type="text/javascript"> 

function calcbag(pack) { 
    var sum = 0; 
    var qty = document.getElementById('qty').value; 
    whichpack = pack.id.substr(4,1); 
    bag = document.getElementById('bag' + whichpack); 
    bag.value = (qty*pack.value)/100; 
} 

</script> 
</head> 

<body> 
<form> 
     <input id="qty" name="quantity" type="text" /> 
     <input id="pack1" name="pack" onchange="calcbag(this);" />  
     <input id="bag1" name="bag" type="text" /> 
     <input id="pack2" name="pack2" type="text" onchange="calcbag(this);" /> 
     <input id="bag2" name="bag2" type="text" /> 
</form> 
</body> 
</html> 

吉姆:

交換了這一點,你calcamount功能....

function calcamount(rate) { 
    whichamount = rate.id.substr(4,1); 


    amnt = document.getElementById('amnt' + whichamount); 
    wegh = document.getElementById('wegh' + whichamount); 
    totalamnt = document.getElementById('totalamnt'); 

    rate = parseFloat(rate.value); 
    wegh = parseFloat(wegh.value); 

    NewAmnt = rate*wegh; 
    amnt.value = NewAmnt; 


/********************************************* 
    This is the modified/working version of your code 
    DANGEROUS! it does not recalculate, so any change 
    to a line item just adds to the total 
    (Causing an incorrect total) 
**********************************************/ 
/* 
    OldTotal = parseFloat(totalamnt.value); 
    if (isNaN(OldTotal)) OldTotal = 0; 

    totalamnt.value = OldTotal + NewAmnt; 
*/ 

/********************************************* 
    Safe method for recalculating total 
    This loops through all line items and adds 
    each to form a new total 
*********************************************/ 
    NewTotal = 0; 

    for (i=1;i<=5;i++) { 
     amnt = document.getElementById('amnt' + i); 
     IntAmnt = parseFloat(amnt.value); 
     if (!isNaN(IntAmnt)) NewTotal += IntAmnt; 
    } 

    totalamnt.value = NewTotal; 
} 

,如果您有任何更多的問題開始一個新的問題,因爲這一點最初的問題和代碼,我會說已定.....

0

你應該檢查你的域的命名。例如。在你的第二個功能,你指的是pack1bag1等,但你的表單字段有姓名和身份證pack2bag2

而且我看不到表單域qty

二,這是什麼?

</form type="submit" value="calculator2"> 

這是一個錯誤?您不能在結束標記中使用屬性,並且屬性對於form標記甚至沒有意義。

爲了獲得更好的幫助,您應該提供更完整的HTML示例或表單。

0

對於此代碼:

var pack1 = document.form1.pack1.value; 
document.form1.bag1.value = (qty*pack1)/100; 

我看不到任何元素與 「PACK1」 和 「BAG1」,只能用 「PACK2」 和 「BAG2」 的名字,所以我想改變爲:

var pack2 = document.form1.pack2.value; 
document.form1.bag2.value = (qty*pack2)/100; 

將解決問題。

0

這完全是形式

<Script Language="JavaScript"> 
function bag1() 
{ 
var sum = 0; 
var qty = document.form1.qty.value; 
var pack = document.form1.pack.value; 
document.form1.bag.value = (qty*pack)/100; 
} 
function bag2() 
{ 
var sum = 0; 
var qty = document.form1.qty.value; 

var pack2 = document.form1.pack2.value; 
    document.form1.bag2.value = (qty*pack2)/100; 

} 

HT ML這裏

<form name="form1" id="form1" action="/" method="post"> 
<input id="item1" name="item1" type="text" maxlength="255" value=""/> 
    <input type="text" maxlength="255" value=""/> 
    <input id="weight" name="weight" type="text" maxlength="255" value=""/> 
    <input id="pack" name="pack" type="text" maxlength="255" onchange="bag1();" value=""/> 
    <input id="bag" name="bag" type="text" maxlength="255" value=""/> 
    <input id="rate" name="rate" type="text" maxlength="255" value=""/> 
    <input id="amount" name="amount" type="text" maxlength="255" value=""/>  
    <input id="element_12" name="type" type="text" maxlength="255" value=""/>  
    <input id="element_13" name="brand" type="text" maxlength="255" value=""/> 
<input type="text" maxlength="255" value=""/> 
    <input type="text" maxlength="255" value=""/> 
    <input id="weight2" name="weight2" type="text" maxlength="255" value=""/> 
    <input id="pack2" name="pack2" type="text" maxlength="255" value=""/> 
    <input id="bag2" name="bag2" type="text" maxlength="255" onchange="bag2();" value=""/> 
    <input id="rate2" name="rate2" type="text" maxlength="255" value=""/> 
    <input id="amount2" name="amount2" type="text" maxlength="255" value=""/> 
    <input id="element_12" name="type" type="text" maxlength="255" value=""/>  
    <input id="element_13" name="brand" type="text" maxlength="255" value=""/> 
</form type="submit" value="calculator2">