我有几个输入文本元素
我有按钮disable some input
用于禁用某些输入元素,
我还有按钮see values
,用于查看所有输入值
我需要什么:
例如,我点击按钮disable some input
,现在一些输入被禁用了吗?
现在如果点击按钮see values
,我只想看到那些未被禁用的输入值。
我做了几乎所有,但我不知道,如何使这个条件:if element already is disabled
请看演示 http://jsfiddle.net/WW8UF/4/
身体是:
<form>
<ul id="my_ul">
<li><input type="text" value="a" /></li>
<li><input type="text" value="s" /></li>
<li><input type="text" value="d" /></li>
</ul>
</form>
<div id="disable_btn">disable some input</div>
<div id="see_values">see values</div>
js,使用jQuery 1.8.2
$(document).ready( function () {
$("#disable_btn").on("click", function () {
$("#my_ul li:eq(0) input").prop("disabled", true);
});
$("#see_values").on("click", function () {
$("#my_ul li").each ( function () {
if (1==1/*if this input is not disabled*/) {
alert ( $(this).find("input").val() );
}
});
});
});
答案 0 :(得分:4)
无需遍历每个li
,只需获取未禁用的输入:
$("#my_ul li input:not([disabled])").each ( function () { ... });
实例:http://jsfiddle.net/WW8UF/10/
您也可以使用
$("#my_ul li input:enabled").each ( function () { ... });
哪个更清洁一点。实例:http://jsfiddle.net/WW8UF/11/
答案 1 :(得分:1)
条件是:
!$(this).find('input').attr('disabled')
答案 2 :(得分:1)
这是另一个尝试:
$("#see_values").on("cick", function () {
$("#my_ul li input").not(":disabled").each ( function ()
alert ( $(this).val());
});
});
JQuery提供伪选择器“:disabled”,所以你只需忽略它们。
希望有所帮助!
答案 3 :(得分:0)
使用更好的选择器。
变化: -
$("#my_ul li").each ( function () {
if (1==1/*if this input is not disabled*/) {
alert ( $(this).find("input").val() );
}
});
于: -
// Perform search with selector
$("#my_ul li input:enabled").each ( function () {
// No if statement required
alert ( $(this).find("input").val() );
});
答案 4 :(得分:0)
另一种可能性:
$(document).ready( function () {
$("#disable_btn").on("click", function () {
$("#my_ul li:eq(0) input").prop("disabled", true);
});
$("#see_values").on("click", function () {
$("#my_ul li input").each ( function () {
if (!$(this).is(':disabled')) { //or if ($(this).is(':enabled'))
alert ( $(this).val() );
}
});
});
});
工作jsfiddle
答案 5 :(得分:0)
只需检查已禁用的属性值,方法与分配它的方式相同,如下所示:
if (!$(this).find("input").prop("disabled")) {
// do something to this
}