无法设置隐藏的表单字段

问题描述 投票:3回答:2

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

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的值仍为“”。

有什么建议么 ?

javascript forms hidden ecmascript-5
2个回答
4
投票

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

你可以做两件事:

改变这个:

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

对此:

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

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

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

2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.