簡體   English   中英

根據復選框已選中的屬性,無法在按鈕中添加/刪除禁用的屬性

[英]Unable to add/remove disabled attribute in button based on checkbox checked property

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中進行了檢入,它基於選中和未選中的值正確進入了循環。

注意:我正在使用Jquery mobile 1.2和jQuery 1.7。 另外,在這里發布我在谷歌搜索之前,根據復選框的選中值,在啟用和禁用按鈕下有很多發布。 但沒有一個解決我的問題。

有什么問題? 請幫我

謝謝...

我不確定這是否有助於解決您的主要問題,但是根據http://api.jquery.com/prop/,您應該使用.prop()函數而不是.attr添加和刪除禁用的屬性()和.removeAttr()函數。

要添加屬性:

.prop("disabled", true);

刪除屬性:

.prop("disabled", false);

在尋找以上信息時,我偶然發現了這個問題,所以我想分享一下。

由於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');

像這個

  $('#setagb').change(function(){
        if ($(this).is(':checked'))
        {
            $("#submit").removeAttr("disabled");
        }
        else
        {
            $("#submit").attr( "disabled", "disabled" );
        }               
  });

嘗試這個

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

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM