IE отменяет выбор RadioButtonList после того, как функция JavaScript возвращает false - PullRequest
0 голосов
/ 04 августа 2011

У нас есть RadioButtonList с тремя ListItems.Когда пользователь делает выбор, мы хотим отобразить окно подтверждения.Если они нажимают кнопку отмены, мы просто хотим, чтобы изменение выбора было отменено.Приведенный ниже код прекрасно работает во всем - НО - IE 7, 8 и 9. В IE ни один из ListItems не выбирается после выполнения возвращаемого значения false, но во всех остальных, только с кодом ниже, выбор отменяется, иранее выбранный элемент затем выбирается, как мы хотим.ВЫ НЕТ РАБОТЫ IE?

Разметка:

<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged" AutoPostBack="False">
    <asp:ListItem Selected="True" onClick="return confirmSubmit(this, event);">Value 1</asp:ListItem>
    <asp:ListItem onClick="return confirmSubmit(this, event);">Value 2</asp:ListItem>
    <asp:ListItem onClick="return confirmSubmit(this, event);">Value 3</asp:ListItem>
</asp:RadioButtonList>

Javascript:

function confirmSubmit(listItem, e) {
    var agree = confirm("Do you really want to change the value?");
    if (!agree) {
        return false;
    }
    else {
        document.forms[0].submit();
    }
}

1 Ответ

1 голос
/ 04 августа 2011

Самый простой способ работы с кросс-браузерными решениями - это библиотека javascript jQuery .Вот решение для использования jQuery , который будет работать с вашим кодом.

 <script type="text/javascript">
    var rblContainer;
    var lastChecked;
    $(document).ready(function () {
        rblContainer = $('#<%= RadioButtonList1.ClientID %>');
        lastChecked = rblContainer.children().find('input[checked]'); 
     });
    function confirmSubmit(listItem, e) {
        var l = $(listItem);

        var agree = confirm("Do you really want to change the recipient type?");
        if (!agree) {
            lastChecked.attr("checked", "checked");
            return false;
        }
        else {
            lastChecked = l;
            document.forms[0].submit();
        }
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...