在Internet Explorer 6中使用JavaScript表单提交问题

时间:2009-11-23 09:57:47

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

我刚刚完成了使用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>

8 个答案:

答案 0 :(得分:1)

返回的内容:

document.getElementById('image_id')

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

尝试替换:

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

使用:

document.del_form.image_id.value=image_id;

答案 1 :(得分:0)

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>

答案 2 :(得分:0)

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

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;” />

答案 3 :(得分:0)

如果替换会发生什么:

    document.del_form.submit();

使用:

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

答案 4 :(得分:0)

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

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

如果我记得很清楚,这解决了在IE6上提交表单的一些问题。

答案 5 :(得分:0)

我已经编辑了一些代码。

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

和带有一些测试Image ID的HTML,它可以在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 :(得分:0)

让我们再试一次:)。

更换后会发生什么:

onclick="dodelete('<?php echo $row['image_id']?>')">

使用:

onclick="dodelete('<?php echo $row['image_id']?>'); return false;">

对您的代码究竟不起作用的是什么?抛出JS错误,没有服务器请求,请求中的值是空的?

(也许是最重要的问题) - action表单的del_form属性在哪里?

答案 7 :(得分:0)

替换

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

<a href="#"

对于触发JS提交的dom,IE有问题。