【问题标题】:Clear all textfields inside a DIV with javascript only仅使用 javascript 清除 DIV 中的所有文本字段
【发布时间】:2015-12-30 07:55:19
【问题描述】:

我想用一个按钮清除给定 DIV 中所有文本字段的内容。我正在使用这个 javascript 代码:

<div id="block1">
    <table>
        <tr>
            <td><!--somefields--></td>
        </tr>
        <tr>
            <td><input type="button" onclick="clear('block1')" value="clear"></td>
        </tr>
    </table>
</div>
<script type="text/javascript">
    function clear(fieldid) {
        document.getElementById(fieldid).childNodes[3].innerHTML='';
    }
</script> 

但它不起作用。怎么了?

谢谢。

【问题讨论】:

  • 文本字段是什么意思?输入?
  • 是的,您可以在其中输入单行文本的字段。
  • 你能分享一段完整的代码吗?
  • 将整个东西包装在一个表格中,包括一个重置按钮。不需要脚本。或者对于不必要的复杂性,调用表单的 reset 方法。
  • 它的代码太多了。我已经包含了其中最相关的部分。

标签: javascript textfield


【解决方案1】:

下面的代码为您提供示例输入文本框

<div id="block1">
     <table>
      <tr>
       <td><input type="text" value="Hello"/></td>
      </tr>
      <tr>
       <td><input type="button" onclick="clearFields('block1')" value="clear"></td>
      </tr>
     </table>
    </div>
    <script type="text/javascript">
        function clearFields(fieldid) {
        var container, inputs, index;

        container = document.getElementById(fieldid);
        inputs = container.getElementsByTagName('input');
        for (index = 0; index < inputs.length; ++index) {
    	    if(inputs[index].type =="text")
            inputs[index].value = '';
        }
    }
    </script>

【讨论】:

  • 这是正确的答案。谢谢。我只是想知道您是否可以通过取消循环使其变得更简单。
  • 你可以自己尝试自定义 :)
  • 我看到的唯一方法是分别声明每个文本字段,因为我只有 4 个可以使代码更短,但您的解决方案可以为所有字段完成工作,无论有多少。谢谢。
【解决方案2】:

您可以从需要的div 中选择所有输入,并在循环中将它们的值设置为空。

function clear(fieldid) {
    var container = document.getElementById(fieldid);
    var inputs = container.getElementsByTagName('input');
    for (var index = 0; index < inputs.length; ++index) {
        inputs[index].value = '';
    }
}

【讨论】:

  • 我试过了,但没用。你能让它更简单吗?
  • 对不起,弄错了。您应该使用value 而不是val。我的 jquery 习惯。更新了我的答案。
  • 现在它可以工作了,但它也会清除按钮的值哈哈哈
猜你喜欢
  • 1970-01-01
  • 2014-07-29
  • 2022-11-09
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 2012-05-19
  • 2011-08-10
  • 1970-01-01
相关资源
最近更新 更多