jQuery removeAttr('type')不起作用

时间:2012-06-14 11:18:30

标签: javascript jquery html

我的问题很简单

$('#button').removeAttr('type');

在firebug上触发错误

type property can't be changed

我有两个问题:

  • 如何解决这个问题?
  • 是否有一个带有无法更改的属性列表的引用?

由于

修改

我想做的是:

阻止按钮提交表单。

注意:我的按钮作为html模板包含在内,表格代码无法从我这里获取 类似的东西:

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

我只能控制 buttons.php

3 个答案:

答案 0 :(得分:17)

在IE中插入input type set: function( elem, value ) { // We can't allow the type property to be changed (since it causes problems in IE) if ( rtype.test( elem.nodeName ) && elem.parentNode ) { jQuery.error( "type property can't be changed" ); 后,你无法更改$("#button").click(function(e){ e.preventDefault(); }); $("#button").prop("disabled", true); 。由于这个原因,jQuery为所有浏览器引发了一个错误。

来自消息来源:

$("#form").submit(function(e){
    e.preventDefault();
});

没有其他情况我知道(或jQuery知道)以及如何解决这个问题很大程度上取决于你首先要做的事情。考虑创建一个具有不同类型的新元素,例如使用它。

编辑:要阻止按钮提交表单,您可以使用:

{{1}}

或(信用Tim Down):

{{1}}

为防止以任何方式提交表单,您可以使用:

{{1}}

答案 1 :(得分:6)

你可以替换它:

$('#button').replaceWith('<input type="text" value="text"/>');

或使用event.preventDefault()

答案 2 :(得分:1)

由于您只想禁用提交按钮:

如果你正在使用jQuery&lt; 1.6 这样做:

$("#button").attr("disabled", 'disabled');

如果您使用的是jQuery 1.6 +:

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

请参阅此问题:.prop() vs .attr()以获取参考原因。