无法让这个HTML / java脚本正常工作,现在已经工作了一天。在线查看并找到了我在这里编码的内容。我希望它在页面加载时不显示" Colors *"行。当我从下拉菜单中选择衬衫的尺寸时,它会显示颜色选项。
到目前为止,有点工作,其中有颜色和单选按钮的表调整大小并且没有正确显示,与上面的行长度相匹配,所以这就是我被卡住了。随着单选按钮允许选择所有这些而不是只有一个。
我添加了两张图片,展示了它的样子。 编辑:按钮问题已修复
我希望用javascript,没有jquery来做这件事。
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="jsForm.js"></script>
<title>Javascript with Forms</title>
<style type="text/css">
table{
width: 800px;
padding: 10px;
}
</style>
</head>
<body>
<form action="#">
<table border="1">
<caption>T-Shirt Selection</caption>
<tr><td style="100px;"></td><td style="150px;"></td><td style="50px;"></td><td style="50px;"></td><td></td></tr>
<tr>
<th>Description</th>
<th>Selection</th>
<th>Qty</th>
<th>Total</th>
</tr>
<tr>
<td>
T_Shirt 1:
</td>
<td>
<select id="shirts" onchange="showButton(this)">
<option value="0" selected >Choose T-Shirt </option>
<option value="1" >Small $10.99</option>
<option value="2" >Medium $12.99</option>
<option value="3" >Large $14.99</option>
<option value="4" >X-Large $15.99</option>
<option value="5" >XX-Large $15.99</option>
</select>
</td>
<td>
<input type="text" name="qty" maxlength="4" size="4" />
</td>
<td>
<input type="text" name="qty" maxlength="10" size="10" />
</td>
</tr>
<tr id="hidden_button" style="display:none;">
<td colspan="1">Color.*</td>
<td colspan="3">
<input type="radio" name="Back" value="Black" /> Black
<input type="radio"name="White" value="White" />White
<input type="radio"name="Blue" value="Blue" />Blue
<input type="radio" name="Red" value="Red"/>Red
</td>
</tr> </table>
</form>
</body>
的Javascript
function showButton(elem){
if(elem.value == 0){
document.getElementById('hidden_button').style.display = "none";
}else if(elem.value > 0){
document.getElementById('hidden_button').style.display = "block";
}
}
非常感谢任何帮助
答案 0 :(得分:2)
您需要在脚本中使用display = "table-row"
,而不是display = "block"
建议切换类而不是更改元素样式,如示例2所示。
function showButton(elem) {
if (elem.value == 0) {
document.getElementById('hidden_button').style.display = "none";
} else if (elem.value > 0) {
document.getElementById('hidden_button').style.display = "table-row";
}
}
table {
width: 800px;
padding: 10px;
}
<form action="#">
<table border="1">
<caption>T-Shirt Selection</caption>
<tr>
<td style="100px;"></td>
<td style="150px;"></td>
<td style="50px;"></td>
<td style="50px;"></td>
<td></td>
</tr>
<tr>
<th>Description</th>
<th>Selection</th>
<th>Qty</th>
<th>Total</th>
</tr>
<tr>
<td>
T_Shirt 1:
</td>
<td>
<select id="shirts" onchange="showButton(this)">
<option value="0" selected>Choose T-Shirt</option>
<option value="1">Small $10.99</option>
<option value="2">Medium $12.99</option>
<option value="3">Large $14.99</option>
<option value="4">X-Large $15.99</option>
<option value="5">XX-Large $15.99</option>
</select>
</td>
<td>
<input type="text" name="qty" maxlength="4" size="4" />
</td>
<td>
<input type="text" name="qty" maxlength="10" size="10" />
</td>
</tr>
<tr id="hidden_button" style="display:none;">
<td colspan="1">Color.*</td>
<td colspan="3">
<input type="radio" name="Back" value="Black" />Black
<input type="radio" name="White" value="White" />White
<input type="radio" name="Blue" value="Blue" />Blue
<input type="radio" name="Red" value="Red" />Red
</td>
</tr>
</table>
</form>
样本2
function showButton(elem) {
if (elem.value == 0) {
document.getElementById('hidden_button').classList.remove('show');
} else if (elem.value > 0) {
document.getElementById('hidden_button').classList.add('show');
}
}
table {
width: 800px;
padding: 10px;
}
#hidden_button {
display: none;
}
#hidden_button.show {
display: table-row;
}
<form action="#">
<table border="1">
<caption>T-Shirt Selection</caption>
<tr>
<td style="100px;"></td>
<td style="150px;"></td>
<td style="50px;"></td>
<td style="50px;"></td>
<td></td>
</tr>
<tr>
<th>Description</th>
<th>Selection</th>
<th>Qty</th>
<th>Total</th>
</tr>
<tr>
<td>
T_Shirt 1:
</td>
<td>
<select id="shirts" onchange="showButton(this)">
<option value="0" selected>Choose T-Shirt</option>
<option value="1">Small $10.99</option>
<option value="2">Medium $12.99</option>
<option value="3">Large $14.99</option>
<option value="4">X-Large $15.99</option>
<option value="5">XX-Large $15.99</option>
</select>
</td>
<td>
<input type="text" name="qty" maxlength="4" size="4" />
</td>
<td>
<input type="text" name="qty" maxlength="10" size="10" />
</td>
</tr>
<tr id="hidden_button">
<td colspan="1">Color.*</td>
<td colspan="3">
<input type="radio" name="Back" value="Black" />Black
<input type="radio" name="White" value="White" />White
<input type="radio" name="Blue" value="Blue" />Blue
<input type="radio" name="Red" value="Red" />Red
</td>
</tr>
</table>
</form>
答案 1 :(得分:1)
<input type="radio" name="Back" value="Black" /> Black
<input type="radio"name="White" value="White" />White
<input type="radio"name="Blue" value="Blue" />Blue
<input type="radio" name="Red" value="Red"/>Red
因为您为单选按钮添加了不同的名称,所有这些名称都变得独立。将它们全部放在一个组中,将它们放在同一个组中。
<input type="radio" name="color" value="Black" /> Black
<input type="radio"name="color" value="White" />White
<input type="radio"name="color" value="Blue" />Blue
<input type="radio" name="color" value="Red"/>Red
答案 2 :(得分:1)
首先你必须修复第一个tr。在那里你有5 td,但你的colspan运行大约3 cols和所有其他tr(少了最后隐藏)有4 cols !!!
如果你写(如在你的第一个tr中)
,这是不好的代码style="100px;"
你忘了像width / height / etc这样的样式属性
没有必要写
colspan="1"
这是td。
的默认设置答案 3 :(得分:0)
您可以点击此处添加课程脚本$('#shirts').on('click', function() { $(this).addClass('current').hidden_button(); });