2

私は使用しています: http://api.jqueryui.com/spinner入力に attr=disabled がある場合、スピナーを無効にするように設定するにはどうすればよいですか?

<input type="checkbox" />
<input type="text" class="spinner" />

if($checkbox.attr("checked")){
   $input.removeAttr('disabled').spinner();
} else {
   $input.attr('disabled', true).spinner("option", "disabled", true);
}

このコードは私にエラーを与えます:初期化前にスピナーのメソッドを呼び出すことはできません。メソッド「オプション」を呼び出そうとしました

4

3 に答える 3

3

jQuery UI スピナーには、デフォルトで有効化/無効化メソッドがあり、それらを活用するのが最適です。さらに、スピナーをデフォルトで無効にしたい場合は、その入力をに設定してから、スピナーコンストラクターdisabled="disabled"にフィードします。=== ifおよび=== if属性が存在しないため、このアプローチを使用する場合、毎回スピナー コンストラクターthis.disabledに供給しても安全です。this.disabledthis.disabledtruedisabled="disabled"this.disabledfalsedisabled

http://jsfiddle.net/A3SL4/

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"/>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    </head>
    <body>
        <p>
            <label for="spinner1">Default Enabled Spinner</label>
            <input class="spinner" id="spinner1"/>
            <input checked="checked" onchange="enableSpinner('spinner1', this.checked);" type="checkbox"/>
        </p>
        <p>
            <label for="spinner2">Default Disabled Spinner</label>
            <input class="spinner" disabled="disabled" id="spinner2"/>
            <input onchange="enableSpinner('spinner2', this.checked);" type="checkbox"/>
        </p>
        <script type="text/javascript">
            $(".spinner").each(function() {
                $(this).spinner({
                    disabled: this.disabled
                });
            });

            function enableSpinner(spinnerId, enable) {
                var spinner = $("#" + spinnerId);
                if (enable) {
                    spinner.spinner("enable");
                } else {
                    spinner.spinner("disable");
                }
            }
        </script>
    </body>
</html>
于 2013-07-15T19:53:23.783 に答える
2

これを試してください:http://jsbin.com/ojiwas/1/edit

$( ".spinner" ).prop('disabled',true);
  $(':checkbox').change(function(){
    if($(':checked').length>0){
      $( ".spinner" ).spinner();
    }else{
      $( ".spinner" ).spinner("destroy").prop('disabled',true);
    }
});
于 2013-01-11T08:45:16.740 に答える
2

スピナー ウィジェットが作成されていないときに、スピナー ウィジェットのオプションを設定しようとしています。代わりに、コンストラクター オプションを使用してスピナーを呼び出すことができますdisable

if($checkbox.attr("checked")){
   $input.removeAttr('disabled').spinner();
} else {
   $input.attr('disabled', true).spinner({
      disabled: true
    });
}
于 2013-01-11T08:19:46.533 に答える