7

Jquery:

<script type="text/javascript">

function  enableDisableButton() {

    var isChecked = ($('input[name=ignore-checkbox]').is(':checked'));

    if (isChecked == true) {
        $("button[name=set-up-account]").removeAttr("disabled");
    }
    else {
        $("button[name=set-up-account]").attr("disabled", "disabled");
    }

}

$('#mobilePage').live('pageinit', function (event) {    //document ready for jquery mobile

    enableDisableButton();

    $('#ignore-checkbox').bind("change", function () {
        enableDisableButton();
    });

});
  </script>

HTML:

 @using (Html.BeginForm("Account", "SetUpAccount", FormMethod.Post, new { @id = "account-set-up", @data_ajax = "false" }))
 {       

     <div class="ui-grid-a field">
        <div class="ui-block-a" style="width:140px;">
         <label for="ignore-checkbox">Ignore</label>
         <input type="checkbox" name="ignore-checkbox" id="ignore-checkbox"/>
        </div>
     </div>

     <div style="width:100%;float:left;">
         <button type="submit" name="set-up-account" id="set-up-account"  data-inline="true"  data-mini="true">Set Up Account</button>
     </div>
  }

Set Up Accountチェックボックスのチェックされたプロパティに基づいてボタンを有効/無効にしたい。チェックボックスがオンになっている場合はボタンを有効にし、そうでない場合は無効にします。ページの読み込み時にボタンを無効にしています

私が直面している問題は、

ページの読み込み時に、ボタンを無効にしますが、チェックボックスの変更イベントに基づいて無効な属性を追加/削除しません。firebugをチェックインし、チェックされた値とチェックされていない値に基づいてループに入ります。

注:私はJquerymobile1.2とjquery1.7を使用しています。また、ここに投稿する前に、私はグーグルで検索しましたが、チェックボックスのチェックされた値に基づいてボタンの有効化と無効化の下に多くの投稿があります。しかし、私の問題を解決するものはありません。

どうしたの?私を助けてください

ありがとう...

4

4 に答える 4

42

これが主な問題の解決に役立つかどうかはわかりませんが、 http://api.jquery.com/prop/によると、.attr ではなく .prop() 関数を使用して無効なプロパティを追加および削除する必要があります() および .removeAttr() 関数。

プロパティを追加するには:

.prop("disabled", true);

プロパティを削除するには:

.prop("disabled", false);

上記の情報を探しているときにこの質問に出くわしたので、共有したいと思いました。

于 2014-11-14T00:45:49.447 に答える
7

このように

  $('#setagb').change(function(){
        if ($(this).is(':checked'))
        {
            $("#submit").removeAttr("disabled");
        }
        else
        {
            $("#submit").attr( "disabled", "disabled" );
        }               
  });
于 2013-09-25T13:45:57.573 に答える
7

Jquery Mobile が原因でボタンが有効になっていません。JQM では、フォーム要素を操作しながら更新する必要があります。

解決策は

    function  enableDisableButton() {

    var isChecked = ($('input[name=ignore-checkbox]').is(':checked'));

    if (isChecked) {
        $("button[name='set-up-account']").removeAttr("disabled").button('refresh');
    }
    else {
        $("button[name='set-up-account']").attr("disabled", "disabled").button('refresh');
   }
}

$('#mobilePage').live('pageinit', function (event) {

    enableDisableButton();

    $('#ignore-checkbox').bind("change", function () {
        enableDisableButton();
    });
});

追加することで問題は解決しました

.button('refresh');
于 2012-11-07T10:46:52.107 に答える
0

これを試して

$("input[name=ignore-checkbox]").click(function() {
  $("button[name=set-up-account]").attr("disabled", this.checked);
});

デモ

于 2012-11-07T09:31:30.887 に答える