我的问题很简单
$('#button').removeAttr('type');
在firebug上触发错误
type property can't be changed
我有两个问题:
由于
修改
我想做的是:
阻止按钮提交表单。
注意:我的按钮作为html模板包含在内,表格代码无法从我这里获取 类似的东西:
include 'form.php';
include 'buttons.php';
我只能控制 buttons.php
答案 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()以获取参考原因。