0

私は次の機能を持っています:

$(function () {
    $(".techdropdown").change(function () {
        var recordToUpdate = $(this).attr("id");
        var selectedTech = $(".techdropdown").val();
        window.alert(selectedTech);
        $.post("/CalloutAdmin/UpdateTech?tech=" + selectedTech + "&id=" + recordToUpdate, function () { document.location = "/CalloutAdmin/Index/"; });
    });
});

そして、次のようなドロップダウンリスト:

@foreach (var item in Model)
                {
    @Html.DropDownList("TechnicianId", null, String.Empty, new { id = item.CalloutId, @class = "techdropdown" })
}

JQuery が値のプロパティを検出し、foreach ループによって作成された FIRST ドロップダウンでそれ (selectedTech) を表示するのは奇妙ですが、直後の他のドロップダウンは値のプロパティを送信していないようです。

私は実行時にチェックしましたが、選択オプションには間違いなく正しい値のプロパティがありますが、JQuery にはそれらが表示されません。何か案は?

アップデート

ドロップダウンを含むテーブルの HTML は次のとおりです。

<table class="table table-hover" style="background-color: white; width: 100%;">
                <tr style="background-color: #e6e6e6;">
                    <th>
                        Client Name
                    </th>
                    <th style="text-align: center">
                        Technician Name
                    </th>
                    <th>
                        Date/Time Logged
                    </th>
                    <th>
                        Job Status
                    </th>
                    <th>
                        Technician Status
                    </th>
                    <th></th>
                </tr>

                    <tr>
                        <td>
                            Michael Barnett
                        </td>
                        <td style="text-align: center">
                            Craig

                            <select class="techdropdown" id="7" name="TechnicianId"><option value="">Choose technician...</option>
<option value="1">Mike</option>
<option value="2">Craig</option>
</select>
                        </td>
                        <td>
                            2013/08/07 01:27:50 AM
                        </td>
                        <td>

                        </td>
                        <td>
                            ASSIGNED
                        </td>
                        <td>
                            <a href="/CalloutAdmin/Edit/7">Edit</a> |
            <a href="/CalloutAdmin/Details/7">Details</a> |
            <a href="/CalloutAdmin/Delete/7">Delete</a>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Michael Barnett
                        </td>
                        <td style="text-align: center">


                            <select class="techdropdown" id="8" name="TechnicianId"><option value="">Choose technician...</option>
<option value="1">Mike</option>
<option value="2">Craig</option>
</select>
                        </td>
                        <td>
                            2013/08/07 01:28:19 AM
                        </td>
                        <td>

                        </td>
                        <td>
                            UNASSIGNED
                        </td>
                        <td>
                            <a href="/CalloutAdmin/Edit/8">Edit</a> |
            <a href="/CalloutAdmin/Details/8">Details</a> |
            <a href="/CalloutAdmin/Delete/8">Delete</a>
                        </td>
                    </tr>

            </table>
4

4 に答える 4

0

次のように「option:selected」を追加してみてください。

$(function () {
    $(".techdropdown").change(function () {
        var recordToUpdate = $(this).attr("id");
        var selectedTech = $(".techdropdown option:selected").val();
        window.alert(selectedTech);
        $.post("/CalloutAdmin/UpdateTech?tech=" + selectedTech + "&id=" + recordToUpdate, function () { document.location = "/CalloutAdmin/Index/"; });
    });
});
于 2013-08-06T19:43:21.880 に答える