Без того, чтобы вы указали все содержание вашей формы, я не могу быть уверен, но я собираюсь сделать хорошее предположение здесь. Я хочу сказать, что ваши теги для полей идентификатора пользователя и пароля имеют только атрибуты имени?
Когда вы имеете дело с формами в HTML, вы должны использовать name = для имен параметров, которые будут переданы в принимающий скрипт. Это то, что дает вашему сценарию бит? Id = blah & pwd = blah в URL или как полезную нагрузку после публикации.
Однако ....
Когда вы обращаетесь к значениям, используя DOM (объектную модель документа), как в вашем скрипте, вам нужно идентифицировать элемент с атрибутом 'id ='.
То же самое относится к любому элементу в любом месте вашего документа, к которому вам нужно получить доступ, используя сценарий в js.
Если вы также заметите, вы получите предупреждение, но если вы не вернете false, ваш фокус-вызов также никогда не будет вызван, именно это заставит ваш скрипт прерваться, так как элемент с именем 'id' не может быть найден .
добавьте id = "id" и id = "pwd" рядом с вашими атрибутами name = "id" и name = "pwd" во входных тегах, и вы должны обнаружить, что все будет работать так, как ожидается. EG:
<input type="text" name="id" id="id" ... />
И последнее замечание: я бы рекомендовал вам переписать эту функцию, используя что-то вроде jQuery, вы найдете модель гораздо более интуитивной и кроссплатформенной.