0

いくつかの入力テキスト要素があり、

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>

jQuery 1.8.2 を使用する js

$(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()  );
                }
            });
        });
});

</p>

4

6 に答える 6

5

すべてをループする必要はありませ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/

于 2012-11-07T10:53:31.030 に答える
1

条件は次のとおりです。

!$(this).find('input').attr('disabled')
于 2012-11-07T10:49:39.527 に答える
1

ここにさらに別の試みがあります:

$("#see_values").on("cick", function () {
        $("#my_ul li input").not(":disabled").each ( function ()
                alert ( $(this).val());

        });

    });

JQuery は疑似セレクター ":disabled" を提供するので、それらは無視してください。

それが役立つことを願っています!

于 2012-11-07T10:54:17.630 に答える
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()  );          
});
于 2012-11-07T10:51:44.990 に答える
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

于 2012-11-07T10:51:53.583 に答える
0

次のように、割り当てたのと同じ方法で、無効なプロパティの値を確認してください。

if (!$(this).find("input").prop("disabled")) {
     // do something to this
}
于 2012-11-07T10:52:15.637 に答える