HTML - я не могу писать в некоторых текстовых полях, отображаемых динамически с помощью JavaScript в Internet Explorer - PullRequest
1 голос
/ 24 августа 2011

У меня есть 2 формы на моей странице.

Первый виден всегда, а второй сначала скрыт.

Когда пользователь нажимает указанную опцию радио, появляется вторая форма.

В Chrome и Firefox все хорошо, но в IE форма показывается, но я не могу писать внутри полей текстовых полей.

Самое странное, что я могу стереть все внутри текстовых полей, но ничего не могу добавить.

Вот код:

Первая форма:

<form name="calendar" action="" method="post">
    <input type="text" name="n" />
    <input type="radio" name="t" value="0" onclick="showSecondForm();" />Option 1
    <input type="radio" name="t" value="1" onclick="showSecondForm();" />Option 2
    <input type="radio" name="t" value="2" onclick="showSecondForm();" />Option 3
    <input type="submit" name="submit" value="Submit" onclick="onSubmitAction();return false;">
</form>

Функция showSecondForm () проверяет, отмечена ли опция 3, и если да, то показывает вторую форму.

Вторая форма:

<div id="customForm" style="display: none;">
    <form name="custom" action="" method="post">
        <input type="text" name="a" />
        <input type="text" name="b" />
        <input type="text" name="c" />
        <input type="text" name="d" />
        <input type="text" name="e" />
    </form>
</div>

Формы никогда не будут отправлены, потому что все, что мне нужно сделать, это в javascript, и я могу легко добраться до обеих форм. Весь мой код работает нормально, кроме ввода в текстовых полях, т. Е.

Мой JavaScript

<script type="text/javascript">
    function showSecondForm() 
    {
        if(document.calendar.t[2].checked)
        {
            document.getElementById('customForm').style.display = 'block';
        }
        else
        {
            document.getElementById('customForm').style.display = 'none';
        }
    }
</script>

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

В таких браузерах, как Google Chorme и Mozilla Firefox, когда вы вводите в поле ввода текста максимальное значение, равное 0, длина текстового поля будет «неограниченной». В Internet Explorer это действительно 0, поэтому вы ничего не можете написать в нем.

Таким образом, код должен быть:

<div id="customForm" style="display: none;">
    <form name="custom" action="" method="post">
        <input type="text" name="a" maxlength="255" />
        <input type="text" name="b" maxlength="255" />
        <input type="text" name="c" maxlength="255" />
        <input type="text" name="d" maxlength="255" />
        <input type="text" name="e" maxlength="255" />
    </form>
</div>
0 голосов
/ 24 августа 2011

Попробуйте это:

<script type="text/javascript">
    function showSecondForm() {
        document.getElementById('customForm').style.display='block';
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...