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
我有两个问题:
- 如何避开这个问题
- 是否存在具有无法更改的属性列表的引用
比如:
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);