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;
});
}
это мое решение для него .
AutoPostBack использует JavaScript для обратной отправки после нажатия переключателя. При установке атрибута onclick это поведение перезаписывается, поэтому вы должны добавить дополнительный обработчик события для события click.
Насколько я знаю, нет простого способа сделать это на простом JavaScript, поэтому я бы рекомендовал использовать jQuery:
$('#radioButtonId').click(myFunction);
Единственный способ проверить, включен ли у пользователя javascript, — это со стороны клиента.
Вам лучше всего добавить функцию на стороне клиента, а не в коде сервера. jQuery справляется с этим довольно хорошо, например:
$(function() {
$('input[type=radio]').click(myFunction);
});
Если вы не используете jquery, вы можете сделать document.getElementById()
и еще что-то, чтобы назначить обработчики кликов.
Таким образом, если у клиента нет javascript, радиокнопки остаются нетронутыми.