HTML - 我无法在 Internet Explorer 中由 javascript 动态显示的某些文本框中写入内容

发布于 2024-12-01 03:33:50 字数 1653 浏览 0 评论 0原文

我的页面上有 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 中,并且我可以轻松访问这两种表单。除了在 ie 中的文本框中输入内容外,我的所有代码都工作正常。

我的 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>

I have 2 forms on my page.

The first one is always visible and the second one is hidden at first.

When the user clicks a specified radio option, the second form shows up.

In Chrome and Firefox, everything is fine, but in IE, the form shows, but I cannot write inside the textboxes fields.

The wierdest thing is that I can erase everything inside the textboxes but I cannot add anything.

Here is some code:

The first form:

<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>

The function showSecondForm() checks if option 3 is checked and if so, it shows the second form.

The second form is:

<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>

The forms will never submit because everything I have to do is in javascript and I can reach both forms easilly. All my code is working fine except for the typing in textboxes in ie.

My 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

世界如花海般美丽 2024-12-08 03:33:50

在 Google Chorme 和 Mozilla Firefox 等浏览器中,当您将文本输入字段的 maxlenght 设置为 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>

In browsers like Google Chorme and Mozilla Firefox, when you put a maxlenght of 0 on a text input field, the textbox lenght is "unlimited". In Internet Explorer, it is really 0, so you cannot write anything in it.

So the code must be:

<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>
勿挽旧人 2024-12-08 03:33:50

试试这个:

<script type="text/javascript">
    function showSecondForm() {
        document.getElementById('customForm').style.display='block';
    }
</script>

Try this:

<script type="text/javascript">
    function showSecondForm() {
        document.getElementById('customForm').style.display='block';
    }
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文