2010-09-21 31 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'; 
    } 
} 
相关问题