изменение скрытого поля в проблеме на стороне клиента - PullRequest
0 голосов
/ 24 февраля 2009

У меня есть скрытое поле, и я изменяю значение непосредственно перед отправкой формы с использованием Javascript. Но на стороне сервера он нулевой или пустой. 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 ]

1 голос
/ 24 февраля 2009

document.GetElementsByName возвращает массив элементов, даже если есть только один. Почему бы не использовать document.GetElementById и присвоить идентификатор скрытому вводу? Это должно работать просто отлично.

0 голосов
/ 18 марта 2009

Я бы сделал то, что вы делаете по-другому, но, используя то, что у вас есть, вы могли бы сделать это, предполагая, что на странице есть только один элемент с атрибутом имени '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"] не должно быть пустым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...