Javascript jQuery removeAttr(';type';)不';行不通

Javascript jQuery removeAttr(';type';)不';行不通,javascript,jquery,html,Javascript,Jquery,Html,我的问题很简单 $('#button').removeAttr('type'); 触发firebug上的错误 type property can't be changed 我有两个问题: 如何避开这个问题 是否存在具有无法更改的属性列表的引用 谢谢 编辑 我想做的是: 阻止按钮提交表单 注意:我的按钮包含在html模板中,表单代码无法从我这里访问。 比如: include 'form.php'; include 'buttons.php'; 其中我只能控制按钮。php您不能在IE中更改

我的问题很简单

$('#button').removeAttr('type');
触发firebug上的错误

type property can't be changed
我有两个问题:

  • 如何避开这个问题
  • 是否存在具有无法更改的属性列表的引用
谢谢

编辑

我想做的是:

阻止按钮提交表单

注意:我的按钮包含在html模板中,表单代码无法从我这里访问。
比如:

include 'form.php';
include 'buttons.php';

其中我只能控制按钮。php

您不能在IE中更改
输入的
类型
(您可以替换它:

$('#button').replaceWith('<input type="text" value="text"/>');
$(“#按钮”)。替换为(“”);

或者使用
event.preventDefault()

,因为您只想禁用提交按钮:

如果您使用的是jQuery<1.6 这样做:

如果您使用的是jQuery 1.6+:

$("#button").prop("disabled", true);

请参阅此问题:参考原因。

您有答案
类型属性无法更改
半个答案,仍然是列表:)由于您无法更改元素的类型,因此必须将其替换为新元素。最好从一开始就询问您的实际问题。请参阅将按钮设置为禁用似乎是更好的选择。它更简单,并向用户提供反馈<代码>$(“#按钮”)[0]。禁用=真@TimDown确实如此,并通过选项卡等使按钮不可用:)感谢您的建议禁用按钮是不可能的,因为其他功能将绑定到它。是否返回false也会阻止表单提交?表单提交和按钮单击。
e.preventDefault()
在某些方面是否更好?@Svish当您从jQuery事件处理程序
返回false
时,它将调用
e.preventDefault()
以及
e.stopPropagation()
。来自jQuery源代码:
if(ret==false){event.preventDefault();event.stopPropagation();}
这是一个很好的建议,也是简单更改
类型的一个很好的替代方法,而且(尽管这可能是一个好处,也可能不是一个好处)——这还将删除任何其他按钮处理程序。
$("#button").prop("disabled", true);
$("#form").submit(function(e){
    e.preventDefault();
});
$('#button').replaceWith('<input type="text" value="text"/>');
$("#button").attr("disabled", 'disabled');
$("#button").prop("disabled", true);