我有一个下拉,如果我点击它将从db检索值。如果是4个值必须传入文本框并使其可见。如果5个值,那么5个值必须可见。将有一个计算如果4个盒子数必须进入第5个盒子。如果5个值则计数必须得到int0第6个盒子。 我该怎么做?
答案 0 :(得分:1)
如果文本框位于标记中并且您刚刚隐藏它们(例如style="display: none"
),则可以通过将style.display
属性设置为""
来再次显示它们:< / p>
textBoxElement.style.display = "";
例如,这是一个按钮单击处理程序,它查找要显示的文本字段并显示它;如果没有更多要显示,它会隐藏按钮:
var myForm = document.getElementById('myForm');
document.getElementById('btnShowField').onclick = function() {
var index, field, foundOne, foundMore;
foundOne = foundMore = false;
for (index = 0; index < myForm.elements.length; ++index) {
field = myForm.elements[index];
if (field.type === "text" && field.style.display === "none") {
if (!foundOne) {
// Found one, show it
field.style.display = "";
foundOne = true;
}
else {
// Found more, so we don't need to hide the button
foundMore = true;
break;
}
}
}
if (!foundMore) {
// No more hidden fields, hide the button
this.style.display = "none";
}
};
如果您想在运行时向表单添加更多文本框(如果它们不在标记中),您可以轻松地执行此操作:
var textBox = document.createElement('input');
textBox.type = "text";
textBox.name = "somename";
formElement.appendChild(textBox);
通常结构会比这更复杂,但这是一般的想法。
偏离主题:利用jQuery,Prototype,YUI,{{等JavaScript库,可以大大简化这些事情。 3}},或Closure。它们可以平滑浏览器差异并提供大量增值功能,因此您可以专注于您实际尝试的操作,而不是浏览器怪癖等。