0

MVC アプリケーションを開発しています。インデックスビュー/テーブルでデータを表示しています。

最後の列にチェック ボックスを追加しました。ユーザーがそのチェックボックスをクリックすると、その選択/チェックされた行の特定の列から値を取得したいと思います。

その値をJSのアラートウィンドウに表示しようとしていますが、表示されません。

どうやってするか。

 @model PagedList.IPagedList<PaymentAdviceEntity.PaymentAdvice>

            <table class="table table-striped">
                <tr>
                    <th>Company
                    </th>
                    <th>
                       Amount
                    </th>
               </tr>

         @foreach (var item in Model)
                {
                    <tr>
                        <td>
                            @Html.DisplayFor(modelItem => item.Company.Name)
                        </td>
                        <td>
                             @Html.DisplayFor(modelItem => item.SanctionedAmount,"sAmount","sAmount")
                        </td>
                        <td>

    @Html.CheckBox("IsPaid", (bool)item.IsPaid, new { @value=item.Id,@class="IsPaid-"+item.Id})

                   </td>
                    </tr>
    </table>

<script type="text/javascript">

           $("input[type='checkbox']").click(function () {

                if ($(this).is(":checked"))
                {
                    var nPaid = $("#sAmount").val();
                    alert(nPaid);
                }

               });
        </script>   
4

1 に答える 1

4

js コードをラップして文書化する必要があります。

    <script type="text/javascript">
       $(function(){
         //TO DO smt
         });
       });
    </script>

そして、あなたは別idのものを使う必要がありますforeach。例えば

 @Html.DisplayFor(modelItem => item.SanctionedAmount, string.Format("sAmount{0}", item.Id),"sAmount")

または、$(this).parent... を使用して jquery セレクターを変更します。

すべてのコードは次のようになります。

  @model PagedList.IPagedList<PaymentAdviceEntity.PaymentAdvice>

        <table class="table table-striped">
            <tr>
                <th>Company
                </th>
                <th>
                   Amount
                </th>
           </tr>

     @foreach (var item in Model)
            {
                <tr>


                    <td>
                        @Html.DisplayFor(modelItem => item.Company.Name)
                    </td>

                    <td>
                         @Html.DisplayFor(modelItem => item.SanctionedAmount,"sAmount",new {id = string.Format("sAmount{0}", item.Id)})
                    </td>


                    <td>

@Html.CheckBox("IsPaid", (bool)item.IsPaid, new { @value=item.Id,@class="IsPaid-"+item.Id})


                 </td>
                </tr>
</table>


<script type="text/javascript">
$(function() {
    $("input[type='checkbox']").click(function () {
        if ($(this).is(":checked")) {
            var v = parseInt($(this).val(), 10);
            var s = 1;
            var nPaid = $("#sAmount" + v).val();
            alert(nPaid);
        }
    });
})

于 2013-03-26T10:59:22.707 に答える