Javascript 如何修复这个IE6输入错误

Javascript 如何修复这个IE6输入错误,javascript,internet-explorer-6,Javascript,Internet Explorer 6,我创建了一个表单并附加了一个输入按钮,但我发现它在IE6中无法工作,当单击该按钮时,表单会自动提交。有人能帮我吗。谢谢。对于IE,您可能需要使用addAttribute方法而不是.onclick()方法 发件人: 图像 创建一个图形提交按钮。src属性的值指定将装饰按钮的>图像的URI。出于可访问性的原因,作者应该通过alt属性为图像提供>替换文本 不要像复选框一样使用。创建图像复选框的最佳方法如下: submit.addAttribute('onclick', check); 标签会将图

我创建了一个表单并附加了一个输入按钮,但我发现它在IE6中无法工作,当单击该按钮时,表单会自动提交。有人能帮我吗。谢谢。

对于IE,您可能需要使用addAttribute方法而不是.onclick()方法

发件人:

图像

创建一个图形提交按钮。src属性的值指定将装饰按钮的>图像的URI。出于可访问性的原因,作者应该通过alt属性为图像提供>替换文本

不要像复选框一样使用
。创建图像复选框的最佳方法如下:

submit.addAttribute('onclick', check);


标签会将图像视为复选框,并在单击图像时自动选中隐藏的复选框。

最好连接到第三方库来处理事件不一致性等问题,YUI做得很好,jquery也是如此。

而不是显式设置onclick属性,尝试动态绑定到节点的
onclick
事件。或者您应该查看表单的
onsubmit
事件

<label for="input">
<input id="input" style="display:none;" type="checkbox">
<img src="img.gif" alt="Check">
</label>

你把它包在一个元素里了吗?如果是这样,“动作”属性设置为什么?如果它被设置为不必要的东西/什么都没有,您可以将其设置为action=“javascript:;”吗?为什么不干脆
var check=false?你有没有试过在函数末尾加分号。对Danjah说:我没有设置“action”属性,我会试着对Babiker说:因为在那之前还有其他事情要做,谢谢you@CunruiLiif(submit.setAttribute){submit.setAttribute();}else{submit.onclick=;}。浏览器之间的差异意味着这是不可避免的setAttribute是在所有浏览器中定义的,因此测试“submit.setAttribute”可能不起作用。但只要稍加修改,它就能工作。非常感谢你。
<label for="input">
<input id="input" style="display:none;" type="checkbox">
<img src="img.gif" alt="Check">
</label>
function bindEvent(target, event, handler) {
    if (typeof target.addEventListener != 'undefined') {      
        target.addEventListener(event, handler, false);
    } else if (typeof target.attachEvent != 'undefined') {
        target.attachEvent('on' + event, handler); 
    } 
}


function check(e) {
   // Cancel W3 DOM events
   if (typeof e.preventDefault != 'undefined') {
        e.preventDefault();
   }
   // Cancel for old IE event model
   e.returnValue = false;

   return false;
}

var submit = document.createElement("input");
submit.type = "image";
submit.src = "submit1.gif";

_submitSpan.appendChild(submit);

// Bind click event to submit button...
bindEvent(submit, 'click', check);

// ...or perhaps you want to bind submit event to form
bindEvent(submit.form, 'submit', check);