2017-01-26 8 views
1

私は私のAJAX呼び出しがtrueを返したが、私がこれまで試したすべてが機能しなかったとき、私の見解では、すべてのボタンを無効にしようとしています:MVCのビューに動的にgeneretedブートストラップのボタンを無効に

@model IEnumerable<eksp.Models.WorkRole> 
    @{ 
     ViewBag.Title = "DisplayListOfRolesUser"; 
    } 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
      $(document).ready(function() { 
       var dataJSON; 
       $.ajax({ 
        type: "POST", 
        url: '@Url.Action("checkNumRoles", "WorkRoles")', 
        dataType: "json", 
        success: successFunc, 
        error: errorFunc 
       }); 

       function successFunc(data, status) { 



        if (data== true) { 

         $(".btn").prop('disabled', true); 
        } 
        alert(data); 
       } 

       function errorFunc() { 
        alert('error'); 
       } 


      }); 


    </script> 



    @foreach (var item in Model) 
    { 

     <div class="jumbotron"> 
      <h1>@Html.DisplayFor(modelItem => item.RoleName)</h1> 
      <p class="lead">@Html.DisplayFor(modelItem => item.RoleDescription)</p> 
      <p> @Html.ActionLink(">Focus on this one!", "addWorkRoleUser", new { id = item.WorkRoleId }, new { @class = "btn btn-primary btn-lg" })</p> 
     </div>   

    } 

Whate私が試しましたこれまで通りです:

$('.btn').addClass('btn-disabled'); 
$('.btn').attr('disabled', 'disabled'); 
$('.btn').prop('disabled', true); 

私はこれがうまくいかない理由はありません。おそらく、私は非常に小さいものを見逃していますが、私は何がわかりません。 助けていただければ幸いです。

+0

正しいデータ型の正しい値を受け取っていることを確認するために、あなたの 'successFunc'にブレークポイント(またはアラート)を配置しましたか? –

+0

また、ifステートメントは、割り当てがコメントアウトされている変数を参照します。 –

+0

正しい値を受け取りました。また、私はここに投稿する前に変数をコメントアウトしました。これは問題ではありません。 –

答えて

2

ボタンを無効にするには、無効なクラスを使用します。

$('.btn').addClass('disabled'); 
+0

ありがとう、それは働いた:) –

関連する問題