使文本框可见

时间:2011-02-08 17:44:59

标签: javascript

我有一个下拉,如果我点击它将从db检索值。如果是4个值必须传入文本框并使其可见。如果5个值,那么5个值必须可见。将有一个计算如果4个盒子数必须进入第5个盒子。如果5个值则计数必须得到int0第6个盒子。 我该怎么做?

1 个答案:

答案 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";
  }
};

Live example

如果您想在运行时向表单添加更多文本框(如果它们不在标记中),您可以轻松地执行此操作:

var textBox = document.createElement('input');
textBox.type = "text";
textBox.name = "somename";
formElement.appendChild(textBox);

Live example

通常结构会比这更复杂,但这是一般的想法。


偏离主题:利用jQueryPrototypeYUI,{{等JavaScript库,可以大大简化这些事情。 3}},或Closure。它们可以平滑浏览器差异并提供大量增值功能,因此您可以专注于您实际尝试的操作,而不是浏览器怪癖等。

相关问题