2010-09-21 25 views
0

如果選中無限制,請刪除輸入框。這樣可行。但是,當複選框未選中時,輸入框將不顯示備份。使用複選框切換文本字段的顯示

<script type="text/javascript"> 
    function getQuantity() { 
     var checkbox = document.getElementById("unlimited"); 
     var qty = document.getElementById("quantityspace"); 
     if(checkbox.checked == true){ 
      qty.style.display = 'none'; 
     }else if(checkbox.checked == false) { 
      qty.stlye.display = '<input type="text" id="quantity" size="4" value="1" name="quantity" />'; 
     } 
    } 
</script> 

<input type="checkbox" id="unlimited" name="unlimited" value="x" onClick="getQuantity(); " /> Unlimited? <span id="quantityspace">or specify: 
<input type="text" id="quantity" size="4" value="1" name="quantity" /></span> 

回答

3
qty.stlye.display = '<input type="text" id="quantity" 
size="4" value="1" name="quantity" />'; 

應該是:

qty.style.display = 'inline'; // or block 

display已有輸入標籤的屬性。您不需要將整個標籤分配給該屬性以使其再次出現 - 事實上這是錯誤的。簡單地分配該屬性一個新的有效值顯示,如inline,inline-blockblock,它會再次顯示。

+1

應該真的* *是風格:) – froadie 2010-09-21 16:21:23

+0

@froadie - 我們都看到它在同一時間;-)謝謝! – 2010-09-21 16:23:29

+0

你是一位天才感謝! – Jonathan 2010-09-21 16:23:40

2

在你您有:

qty.stlye.display 

你的意思是style

另外,您錯誤地定義了顯示屬性。它應該是一個valid value。你可能希望它是:

else if(!checkbox.checked) { 
    qty.style.display = 'inline'; // or something from the W3C link above 
} 
0

難道你只是拼錯'qty.stlye.display'嗎?

0

更改qty.stlye.display行:

qty.style.display = ""; 

注意你拼錯的 「風格」 在那裏。

0

您將「style」拼寫爲「stlye」,並且由於某種原因將顯示樣式設置爲HTML。它應該是「內聯」或「阻止」,或者是在將其設置爲「無」之前的任何內容。

0

我想你想要的是這樣的:

function getQuantity() { 
    var checkbox = document.getElementById("unlimited"); 
    var qty = document.getElementById("quantityspace"); 
    if(checkbox.checked == true){ 
     qty.innerHTML = ''; 
    }else if(checkbox.checked == false) { 
     qty.innerHTML = '<input type="text" id="quantity" size="4" value="1" name="quantity" />'; 
    } 
} 

如果我是正確的,你想放的輸入在quantityspace元素時未選中該複選框。

qty.style.display更改跨度的CSS display屬性。 qty.innerHTML更改範圍內的HTML。

您可以用.style.display用下面的代碼做到這一點:

function getQuantity() { 
    var checkbox = document.getElementById("unlimited"); 
    var qty = document.getElementById("quantityspace"); 
    if(checkbox.checked == true){ 
     qty.style.display= 'none'; 
    }else if(checkbox.checked == false) { 
     qty.style.display= 'inline'; 
    } 
} 
相關問題