有时我使用锚作为按钮,有时我只是使用按钮。我想禁用特定的clicky功能,以便:
我该怎么做呢?
按钮很容易禁用,因为禁用的按钮属性由浏览器处理:
<input type="submit" class="btn" value="My Input Submit" disabled/>
<input type="button" class="btn" value="My Input Button" disabled/>
<button class="btn" disabled>My Button</button>
要使用自定义jQuery函数禁用这些功能,只需使用fn即可。extend()
:
// Disable function
jQuery.fn.extend({
disable: function(state) {
return this.each(function() {
this.disabled = state;
});
}
});
// Disabled with:
$('input[type="submit"], input[type="button"], button').disable(true);
// Enabled with:
$('input[type="submit"], input[type="button"], button').disable(false);
JSFiddle禁用按钮和输入演示。
否则,您将使用jQuery的prop()
方法:
$('button').prop('disabled', true);
$('button').prop('disabled', false);
值得注意的是,disabled
不是锚定标记的有效属性。因此,引导在其上使用以下样式。btn
要素:
.btn.disabled, .btn[disabled] {
cursor: default;
background-image: none;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
color: #333;
background-color: #E6E6E6;
}
注意[disabled]
属性是如何作为的目标的。已禁用
类。。disabled
类是使锚定标记显示为disabled所需的。
<a href="http://example.com" class="btn">My Link</a>
当然,这不会阻止链接在单击时运行。以上链接将带我们到http://example.com.为了防止出现这种情况,我们可以添加一段简单的jQuery代码,以使用禁用的
类来调用
事件的锚定标记为目标。preventDefault()
:
$('body').on('click', 'a.disabled', function(event) {
event.preventDefault();
});
我们可以使用toggleClass()
切换禁用的类:
jQuery.fn.extend({
disable: function(state) {
return this.each(function() {
var $this = $(this);
$this.toggleClass('disabled', state);
});
}
});
// Disabled with:
$('a').disable(true);
// Enabled with:
$('a').disable(false);
JSFiddle禁用链接演示。
然后,我们可以扩展上面的disable函数,以检查我们试图使用is()
禁用的元素类型。这样,我们可以toggleClass()
,如果它不是输入
或按钮
元素,或者切换禁用的
属性,如果它是:
// Extended disable function
jQuery.fn.extend({
disable: function(state) {
return this.each(function() {
var $this = $(this);
if($this.is('input, button, textarea, select'))
this.disabled = state;
else
$this.toggleClass('disabled', state);
});
}
});
// Disabled on all:
$('input, button, a').disable(true);
// Enabled on all:
$('input, button, a').disable(false);
完整的JSFIDLE组合演示。
值得进一步注意的是,上述函数也将适用于所有输入类型。
我想不出更简单/更容易的方法了!;-)
使用定位标记(链接):
<a href="#delete-modal" class="btn btn-danger" id="delete">Delete</a>
要启用定位标记,请执行以下操作:
$('#delete').removeClass('disabled');
$('#delete').attr("data-toggle", "modal");
要禁用定位标记,请执行以下操作:
$('#delete').addClass('disabled');
$('#delete').removeAttr('data-toggle');
假设您有文本字段和提交按钮,
<input type="text" id="text-field" />
<input type="submit" class="btn" value="Submit"/>
要禁用任何按钮,例如submit按钮,您只需将disabled属性添加为,
$('input[type="submit"]').attr('disabled','disabled');
执行上述行后,您的提交按钮html标记将如下所示:
<input type="submit" class="btn" value="Submit" disabled/>
请注意,添加了“disabled”属性。
用于启用按钮,例如当您在文本字段中有一些文本时。您将需要删除禁用属性以启用按钮,
if ($('#text-field').val() != '') {
$('input[type="submit"]').removeAttr('disabled');
}
现在,上面的代码将删除“disabled”属性。