2013-05-26 53 views
0

我是新的HTML DOM。我試圖在複選框檢查時更改值。 所以這是我未完成的腳本:更改值時檢查

<html> 
<script type="text/javascript"> 
var val=12; 
document.write("<p>"+val+"</p>"); 
function checkAddress() 
{ 
    var chkBox = document.getElementById('checkAddress'); 
    if (chkBox.checked) 
    { 
     var val=val+2; 
    } 
} 
function checkAddress2() 
{ 
    var chkBox = document.getElementById('checkAddress2'); 
    if (chkBox.checked) 
    { 
     var val=val+3; 
    } 
} 
function checkAddress3() 
{ 
    var chkBox = document.getElementById('checkAddress3'); 
    if (chkBox.checked) 
    { 
     var val=val+4; 
    } 
} 
</script> 
<p>Get value :<input type="checkbox" id="checkAddress" name="checkAddress" onclick="checkAddress()" value="1st"/> 
Get value :<input type="checkbox" id="checkAddress2" name="checkAddress" onclick="checkAddress2()" value="2nd"/> 
Get value :<input type="checkbox" id="checkAddress3" name="checkAddress" onclick="checkAddress3()" value="3rd"/> 

在這裏,我只想把這個腳本:當複選框點擊它會改變值自動。

回答

1

首先關閉您在每次{}內聲明的val,這意味着該值會丟失。其次,你不用VAL做任何事情,以便它有用。

最後,你可以有一個功能,而不是三個你通過點擊特定複選框的地方。

此外,正如註釋中所述,您不會將val分配給任何元素(使用.innerHtml,textarea等)。這意味着沒有看到價值。

<html> 

<script type="text/javascript"> 
var val=12; 

function resetCheckboxes() 
{ 
document.getElementById("checkAddress").checked=false; 
document.getElementById("checkAddress2").checked=false; 
document.getElementById("checkAddress3").checked=false; 
} 

function checkAddress(chkBox) 
{ 
    var multiplyer = 1; 

    if (!chkBox.checked) 
    multiplyer = -1; 

    if(chkBox.id =="checkAddress") 
    val=val+ (multiplyer)*2; 

    else if(chkBox.id =="checkAddress2") 
    val=val+ (multiplyer)*3; 

    else if(chkBox.id =="checkAddress3") 
    val=val+ (multiplyer)*4; 

    document.getElementById("displayValue").innerHTML = "Val:"+val; 
} 
</script> 

<body onLoad="resetCheckboxes()"> 
<div id="displayValue">Val:12</div> 
<p>Get value :<input type="checkbox" id="checkAddress" name="checkAddress" onclick="checkAddress(this)" value="1st"/> 
Get value :<input type="checkbox" id="checkAddress2" name="checkAddress" onclick="checkAddress(this)" value="2nd"/> 
Get value :<input type="checkbox" id="checkAddress3" name="checkAddress" onclick="checkAddress(this)" value="3rd"/> 
</body> 
</html> 
+0

感謝您的建議。 我提到它是未完成的腳本。嘗試完成這一點。 我只想先顯示價值。然後當複選框被選中時,值將被改變。 – thunder

+0

謝謝。但我實際上需要創建3功能原因爲功能1將添加2,但其餘將添加3和4. 但是有可能取回以前的值時,未檢查?可能沒有這個解決方案? – thunder

+0

其實我不知道'innerHTML'會適合這個。原因如果複選框將點擊然後添加2或其他。並在未選中之後將其設置在之前。這是'innerHTML'不可能的。不是嗎? – thunder