【问题标题】:Set the value of a Javascript input hidden field to that of a value entered in another input text field将 Javascript 输入隐藏字段的值设置为在另一个输入文本字段中输入的值
【发布时间】:2013-03-09 15:44:13
【问题描述】:

我有一个用户输入值的输入文本字段 (name: qtyText)。我想使用 JavaScript 将此值设置为另一个隐藏字段 (name: qtyTextHidden) 的值。我该怎么办?

HTML

<input name = "qtyText" type = "textbox" size = "2" value = "" />
<input type="hidden"  value = "" name="qtyTextHidden"/>

我努力使用 JS 设置字段值,但我无法将值发送到 servlet。因此,我尝试使用函数直接设置值,然后尝试将其发送到 servlet。我想要一个value = someJSFunction() 种类。该函数需要在“qtyText”输入字段中的“onChange”时触发。

【问题讨论】:

    标签: javascript jquery html jsp hidden


    【解决方案1】:

    使用 jQuery:

    $(document).ready(function() {
        $('input:text[name="qtyText"]').keyup(function() {
            $('input:hidden[name="qtyTextHidden"]').val( $(this).val() );
        });
    });
    

    使用 JavaScript:

    window.onload = function() {
        if(document.readyState == 'complete') {
            document.getElementsByTagName('input')[0].onkeyup = function() {
                document.getElementsByTagName('input')[1].value = this.value;
            };
        }
    }:
    

    【讨论】:

    • 谢谢大家。这个问题似乎略有不同。我可以设置隐藏字段的值。但是,当我将它传递给 servlet 时,servlet 字段上的值将为 null。我检查了另一个动态生成的值及其相同的问题。有什么想法吗?
    【解决方案2】:

    我建议:

    function updateHidden(valueFrom, valueTo) {
        valueTo.value = valueFrom.value;
    }
    
    var inputs = document.getElementsByTagName('input'),
        textInputs = [],
        hiddenInputs = [],
        refersTo;
    
    for (var i = 0, len = inputs.length; i < len; i++) {
        switch (inputs[i].type) {
            case 'hidden':
                hiddenInputs.push(inputs[i]);
                break;
            case 'text':
            default:
                textInputs.push(inputs[i]);
                break;
        }
    }
    
    for (var i = 0, len = textInputs.length; i < len; i++) {
        refersTo = document.getElementsByName(textInputs[i].name + 'Hidden')[0];
        if (refersTo !== null) {
            textInputs[i].onchange = function () {
                updateHidden(this, document.getElementsByName(this.name + 'Hidden')[0]);
            };
        }
    }
    

    JS Fiddle demo.

    顺便说一句:没有type="textbox"。完全没有。 曾经Anywhere 在 HTML 中,甚至在 HTML 5 中:它是 type="text"。它type="textbox"一起工作的唯一原因是浏览器非常宽容,如果不理解type,它默认type="text"。 p>

    【讨论】:

    • 感谢您的努力。我觉得我需要修改一下以采用这个答案。会尝试并更新我的回复。
    【解决方案3】:

    设置隐藏字段的值最简单的方法是使用传递三个参数fromtoform名称的javascript函数:

    <script type="text/javascript">
        function someJSFunction(form, from, to){
          var el_from=form[from], el_to=form[to];
          el_to.value=el_from.value;
          return el_to.value;
        }
    </script>
    <form name="myform">
    <input name = "qtyText" type = "textbox" size = "2" value = "" onchange="someJSFunction(myform, 'qtyText', 'qtyTextHidden')"/>
    <input type="hidden"  value = "" name="qtyTextHidden"/>
    

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2013-10-14
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 2019-05-07
      相关资源
      最近更新 更多