当前位置: 代码迷 >> JavaScript >> 无法设置隐藏的表单字段
  详细解决方案

无法设置隐藏的表单字段

热度:77   发布时间:2023-06-12 14:05:33.0

我想在提交之前设置hidden在表单中的类型的input ,我不明白为什么它没有设置我的字段:

HTML

    <form id="createForm" method="post" action="[myhost]/[myaddress]/[mypath]" enctype="multipart/form-data" >
      <input type="hidden" id="ticket" name="Ticket" />
    </form>

   <input id="setterInput" type="text"/>
   <button onclick="methods.setHidden()"></button>

JS

window.methods = {
    setHidden: function () {
            var form = document.getElementById('createForm');
            var setter=document.getElementById('setter');
            var input = document.getElementsByName('Ticket');
            input.value = setter.value;
            console.log(input.value); //has the desired value
      //looking with the debugger in my form at the target input, the value is still default
    }

}

当我在console.log行中设置调试器时, input变量已设置。但它不会反映在form 当我滚动表单时, input的值仍为“”。

有什么建议 ?

getElementsByName返回一个元素数组,即使只有一个元素。

你可以做两件事:

改变这个:

var input = document.getElementsByName('Ticket');

对此:

var input = document.getElementById('ticket');

或者如果你想继续使用getElementsByName ,你可以像这样访问它的值:

var input = document.getElementsByName('Ticket')[0];

如果您选择使用“getElementsByName”,请记住它是复数(获取Elements ByName),因此它将返回一个节点元素的数组列表。 所以这种访问数组元素的方式可以帮助var input = document.getElementsByName('Ticket')[0];

  相关解决方案