使用jQuery创建<button>忽略类型属性</button>

时间:2011-07-29 14:51:29

标签: jquery html dom-manipulation

我正在尝试使用jQuery创建几个按钮,其命令如下:

$('<button></button>', { type: 'reset', id: 'reset', name: 'reset' })
    .text('Reset all fields').appendTo(target);

这很有效,只是创建的按钮没有type属性。

这就是我想要的:

<button type="reset" id="reset" name="reset">Reset all fields</button>

但我明白了:

<button id="reset" name="reset">Reset all fields</button>

即。 type="reset"丢失了。我尝试使用.attr()单独添加它,但它没有帮助。该属性被简单地忽略。我在这里缺少什么?

我正在使用jQuery 1.4.4。正如评论中所述,这适用于最新的jQuery版本,但这不是我们系统中的版本,我不知道如果我们升级可能会破坏什么,所以我更愿意用现有版本解决这个问题。

2 个答案:

答案 0 :(得分:3)

你考虑过做什么

 $('<button type="reset" id="reset" name="reset">Reset all fields</button>').appendTo(target);

答案 1 :(得分:3)

这不起作用的原因是,一旦创建按钮,HTML按钮的type属性就是只读的。

这意味着您之后无法更改按钮类型,正如Sam在回答中指出的那样,您最好的选择是在创建按钮的同时将类型添加到按钮。

$('<button type="reset"></button>');

如果您在开发过程中查看错误控制台,则可以更快地捕获这些错误。

对于您提供的代码,Firefox错误控制台告诉我们:

Error: uncaught exception: type property can't be changed