Значение флажка всегда «включено». HTML-форма отправляет значение на сервер, только если флажок установлен. Если флажок не установлен, параметр запроса будет отсутствовать. Эта семантика, по-видимому, сводит к минимуму различия между флажками и переключателями.
HTML-форма реализует следующую семантику:
if ($('#mycheckbox').is(':checked')) {
payload['mycheckbox'] = $('#mycheckbox').val();
}
Вы можете имитировать эту семантику в Ajax или отправить флаг «флажок» непосредственно следующим образом:
payload['mycheckbox'] = $('#mycheckbox').is(':checked');
I ' рекомендую имитировать семантику HTML-формы. Независимо от того, что делает клиент, я бы рекомендовал следующее в коде сервера:
if mycheckbox param exists and its value is either 'true' or 'on' { // pseudo code of course
// mycheckbox is checked
} else {
// mycheckbox is unchecked
}
Надеюсь, это объяснение поможет.
Вам необходимо применить
обработчик событий в контексте этого элемента:
var elem = document.getElementById("linkid");
if (typeof elem.onclick == "function") {
elem.onclick.apply(elem);
}
В противном случае this
будет ссылаться на контекст приведенный выше код выполняется в.
Чтобы вызвать событие, вы просто вызываете обработчик этого события элемент. Небольшое изменение в вашем коде.
var a = document.getElementById("element");
var evnt = a["onclick"];
if (typeof(evnt) == "function") {
evnt.call(a);
}
Если вы используете это только для ссылки на функцию в onclick, это кажется очень плохой идеей. В целом встроенные события - плохая идея.
Я бы посоветовал следующее:
function addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else {
elm['on' + evType] = fn;
}
}
handler = function(){
showHref(el);
}
showHref = function(el) {
alert(el.href);
}
var el = document.getElementById('linkid');
addEvent(el, 'click', handler);
Если вы хотите вызвать ту же функцию из другого кода javascript, имитация щелчка для вызова функции - не лучший способ. Рассмотрим:
function doOnClick() {
showHref(document.getElementById('linkid'));
}