ASP.NET RadioButtonList и прогрессивное улучшение

demo: http://jsfiddle.net/nessajtr/yxpM5/1/

var clickOver = clickOver || {};
clickOver.uniqueId = $.now();

clickOver.ClickOver = function (selector, options) {
    var self = this;

    //default values
    var isVisible, clickedAway = false;

    var callbackMethod = options.content;
var uniqueDiv = document.createElement("div");
var divId = uniqueDiv.id = ++clickOver.uniqueId;
uniqueDiv.innerHTML = options.loadingContent();

options.trigger = 'manual';
options.animation = false;
options.content = uniqueDiv;

self.onClose = function () {
    $("#" + divId).html(options.loadingContent());
    $(selector).popover('hide')
    isVisible = clickedAway = false;
};
self.onCallback = function (result) {
    $("#" + divId).html(result);
};

$(selector).popover(options);

//events
$(selector).bind("click", function (e) {
    $(selector).filter(function (f) {
        return $(selector)[f] != e.target;
    }).popover('hide');

    $(selector).popover("show");
    callbackMethod(self.onCallback);

    isVisible = !(clickedAway = false);
});

$(document).bind("click", function (e) {
    if (isVisible && clickedAway && $(e.target).parents(".popover").length == 0) {
        self.onClose();
        isVisible = clickedAway = false;
    } else clickedAway = true;
});

}

это мое решение для него .

1
задан IrishChieftain 26 August 2010 в 23:44
поделиться

2 ответа

AutoPostBack использует JavaScript для обратной отправки после нажатия переключателя. При установке атрибута onclick это поведение перезаписывается, поэтому вы должны добавить дополнительный обработчик события для события click.

Насколько я знаю, нет простого способа сделать это на простом JavaScript, поэтому я бы рекомендовал использовать jQuery:

$('#radioButtonId').click(myFunction);
1
ответ дан 2 September 2019 в 21:49
поделиться

Единственный способ проверить, включен ли у пользователя javascript, — это со стороны клиента.

Вам лучше всего добавить функцию на стороне клиента, а не в коде сервера. jQuery справляется с этим довольно хорошо, например:

$(function() {
  $('input[type=radio]').click(myFunction);
});

Если вы не используете jquery, вы можете сделать document.getElementById() и еще что-то, чтобы назначить обработчики кликов.

Таким образом, если у клиента нет javascript, радиокнопки остаются нетронутыми.

1
ответ дан 2 September 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: