在客户端问题中改变隐藏字段

时间:2009-02-24 02:32:17

标签: asp.net javascript html dom

我有一个隐藏字段,我在使用Javascript提交表单之前更改了值。但在服务器端它是null或空。 Request.Form [“hidAction”]是 空。

<script type="text/javascript" language="javascript">

    function DoChange() 
    {
        document.getElementsByName('hidAction').value = "filter";
        alert(document.getElementsByName('hidAction').value);
        document.forms[0].submit();
    }
 </script>
<body>
    <form id="form1" runat="server">
       <div>
            <select name="lst" onchange="DoChange();">
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
       </div>
       <input type="hidden" id="hidActionID" name="hidAction" value="tt" />
    </form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

document.GetElementsByName返回一个元素数组,即使只有一个元素。为什么不使用document.GetElementById并为隐藏输入分配ID?这应该可以正常工作。

答案 1 :(得分:0)

我会以不同的方式做你正在做的事情,但是如果页面上只有一个页面上有一个名称属性为“hidAction”的元素,那么继续你所拥有的就可以做到这一点:

function DoChange() 
{
    document.getElementsByName('hidAction')[0].value = "filter";
    alert(document.getElementsByName('hidAction')[0].value);
    document.forms[0].submit();
}

您也可以这样做,假设页面上只有一个表单:

function DoChange() 
{
    document.forms[0]['hidAction'].value = "filter";
    alert(document.forms[0]['hidAction'].value);
    document.forms[0].submit();
}

当你回发时,Request.Form [“hidAction”]现在不应该是空的。