【问题标题】:Form submit problem using JavaScript in Internet Explorer 6在 Internet Explorer 6 中使用 JavaScript 提交表单问题
【发布时间】:2010-12-19 10:10:34
【问题描述】:

我刚刚完成了使用 JavaScript 提交表单的代码。

它适用于除 Internet Explorer 6 之外的所有浏览器。

我在下面粘贴了我的 HTML 表单和 JavaScript 代码。

你能找出它有什么问题吗?

JavaScript:

    <script type="text/javascript" language="javascript">
    function dodelete(image_id)
    {
        if (confirm("Are you sure want to delete this image?"))
        {
            document.getElementById('image_id').value=image_id;
            document.del_form.submit();
        }
    }
    </script>

HTML 代码:

    <form name="del_form" id="del_form" method="post">
        <input type="hidden" name="do" id="do" value="delete" />
        <input type="hidden" name="image_id" id="image_id" />
    </form>

函数调用代码:::

<p class="video">
  <a href="javascript:void(0)" onclick="dodelete('<?php echo $row['image_id']?>')">                                 
    <img src="<?php echo $cfg->admin_image_path; ?>/delete_icon1.gif" border="0" alt="Delete"/>
   </a>
</p>

【问题讨论】:

  • 您可能需要考虑在 serverfault.com 上发布此问题。
  • 服务器故障???为什么?这是一个与编程相关的问题。
  • 请将电话添加到dodelete
  • 我添加了调用 dodelete 的代码......
  • 它使用 document.getElementById('image_id').value=image_id; 替换图像 id 的值;但在那之后它没有提交表单。

标签: javascript internet-explorer-6 cross-browser


【解决方案1】:

OnSubmit 调用 javascript 会有所帮助。

<form name="del_form" id="del_form" onsubmit="dodelete(value);" >
    <input type="hidden" name="do" id="do" value="delete" />
    <input type="hidden" name="image_id" id="image_id" />
</form>

【讨论】:

  • 你好,这里点击删除图像,确认后会将图像写入隐藏字段并提交该表单。所以这里的表单只是用来保存image_id。
【解决方案2】:

有两件事我想尝试,我不知道为什么或者什么时候这不起作用,这似乎是随机的,首先尝试为提交设置超时:

document.doSubmit = function() {
    document.del_form.submit();
}
setTimeout("document.doSubmit();", 100);

有时,点击后只需return 即可:

<input type="hidden" name="image_id" id="image_id" onclick="submitFormFunction(); return false;” />

【讨论】:

  • 嗨,谢谢你的回答,但我不明白你想解释什么? :-)
  • 但在我的功能中没有 image_id 的 onclick 事件。我的 js 函数将在单击删除图像时执行。它会将图像 ID 填充到我的 del_form 表单中。填写表格后,它将使用javascript提交表格..
【解决方案3】:

如果替换会发生什么:

    document.del_form.submit();

与:

document.getElementById('del_form').submit()

【讨论】:

  • 你什么时候调用dodelete?你有任何错误吗?如果有,它们是什么?
  • dodelete 将通过单击图像来调用,不,我没有收到任何错误。
  • 它会改变值吗?您的标记 100% 有效吗?没有重复的ID?可以举个例子吗?
  • K.. 尝试提醒 document.getElementById('foo') 的表单,它是否说 IE6 中的对象对象?您的标记 100% 有效吗?
  • 我已经在 js 函数中提醒了以下代码。 document.getElementById('image_id') 它只显示对象而不是 ie 6 中的对象对象。这可能是我的脚本的问题。
【解决方案4】:

尝试将method='POST' 移动到form 元素定义的开头。

我的意思是——method 属性应该是form 元素的第一个属性。

如果我没记错的话,这解决了在 IE6 上提交表单的一些问题。

【讨论】:

    【解决方案5】:

    我已经稍微修改了你的代码。

    <script type="text/javascript" language="javascript"> 
        function dodelete(image_id) 
        { 
    
            if (confirm("Are you sure want to delete this image?")) 
            { 
    
                document.getElementById('image_id').value=image_id; 
                document.del_form.submit(); 
            } 
     return false;
        } 
    </script> 
    

    和带有一些测试的 HTML Image ID 它在 IE6 中工作

    <form name="del_form" id="del_form" method="post" onSubmit="return(dodelete('2'));"> 
            <input name="do" id="do" value="delete" /> 
            <input name="image_id" id="image_id"  /> 
    <input type="submit" value="Submit">
    </form> 
    

    【讨论】:

      【解决方案6】:

      返回的内容:

      document.getElementById('image_id')

      它返回一个INPUT元素集合的元素?

      尝试替换:

      document.getElementById('image_id').value=image_id;

      与:

      document.del_form.image_id.value=image_id;

      【讨论】:

        【解决方案7】:

        让我们再试一次:)。

        替换后会发生什么:

        onclick="dodelete('&lt;?php echo $row['image_id']?&gt;')"&gt;

        与:

        onclick="dodelete('&lt;?php echo $row['image_id']?&gt;'); return false;"&gt;

        您的代码到底有哪些不适合的地方?抛出JS错误,没有服务器请求,请求中的值为空?

        还有(可能是最重要的问题)——action 属性在哪里?您的 del_form 表单?

        【讨论】:

          【解决方案8】:

          替换

          <a href="javascript:void(0)"
          

          <a href="#"
          

          IE 对于触发 JS 提交的 dom 存在问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-08-31
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多