входные данные не получают фокус после обновления AJAX. IE7 - PullRequest
0 голосов
/ 10 июня 2011

У меня есть страница, которая имеет несколько форм. Пользователь может изменить содержимое, и все запросы выполняются через AJAX. Каждый вызов AJAX обновляет раздел страницы, содержащий форму.

После обновления все формы ввода не получают фокус. Это происходит только в IE, я пробовал в Chrome, и он прекрасно работает.

Есть идеи ??

EDIT:

Контроллер

[HttpPost, ValidateInput(false)]
        public ActionResult SaveRiskAndRewardItem(int RiskAndRewardItemId, short RiskAndRewardRating, string Description)
        {
            RiskAndRewardItem model = RiskAndRewardItemModelBuilder.GetInstance().BuildOne(RiskAndRewardItemId);

            model.RiskAndRewardRating = RiskAndRewardRating;
            model.Description = Description;
            if (ModelState.IsValid)
            {
                _riskAndRewardItemRepository.Update(model);
            }
            return PartialView("_RiskAndRewardItem", model);
        }

View

@model KII.Models.RiskAndRewardItem
<div data-risk-and-reward-item-id="@Model.Id">
    <span class="editContentLink actionLink" data-risk-and-reward-item-id="@Model.Id" data-viewer="viewrisk-and-reward-item-@Model.Id" data-editor="editrisk-and-reward-item-@Model.Id">Edit</span>
    <div id="viewrisk-and-reward-item-@Model.Id">
        <table class="riskAndRewardTable">
            <tr data-risk-and-reward-item-id="@Model.Id">
                @for (int i = 1; i < 8; i++)
                {
                    <td class="risk-and-reward-item @((i == @Model.RiskAndRewardRating) ? "risk-and-reward-item-selected" : "")">@i
                    </td>
                }
            </tr>
        </table>
        <div style="display: inline">
            <div style="float: left">
                lower rewards/risk
            </div>
            <div style="float: right">
                higher rewards/risk
            </div>
            <br />
            <br />
        </div>
        <div data-risk-and-reward-item-id="@Model.Id">
            @Html.Raw(@Model.Description)
        </div>
    </div>
    <div id="editrisk-and-reward-item-@Model.Id" style="display: none;width:100%">
        @using (Ajax.BeginForm("SaveRiskAndRewardItem", null, new AjaxOptions
        {
            UpdateTargetId = "itemContent-" + @Model.Item.Id,
            HttpMethod = "POST",
            InsertionMode = InsertionMode.Replace,
            OnBegin = "loading(\"itemContent-" + @Model.Item.Id+"\")",
            OnSuccess = "loaded(\"itemContent-" + @Model.Item.Id+"\")",
        }, new { @id = "TitleForm" }))
        {

            <table class="riskAndRewardTable">
                <tr data-risk-and-reward-item-id="@Model.Id">
                    @for (int i = 1; i < 8; i++)
                    {
                        <td class="risk-and-reward-item-edit @((i == @Model.RiskAndRewardRating) ? "risk-and-reward-item-selected-edit" : "")">@i
                        </td>
                    }
                </tr>
            </table>

            <br />

            <input id="RiskAndRewardItemId" name="RiskAndRewardItemId" type="hidden" value="@Model.Id" />
            <input id="RiskAndRewardRating" name="RiskAndRewardRating" type="hidden" value="@Model.RiskAndRewardRating" />
            <textarea id="Description" class="htmleditor" name="Description" rows="5" cols="40">@Model.Description</textarea>
            <div style="text-align: right">
                <input id="titleButton" type="submit" class="button" value="Save" /></div>
        }
    </div>
</div>

У меня есть 4 различных частичных представления, каждый из которых имеет свой метод в контроллере. Как и выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...