Мой коллега написал различные функции Javsascript, которые отображают определенные элементы HTML, зависящие от ответов на различные входы. Это пример одной из функций, которые очень похожи.Ссылка на другую функцию, содержащую ссылку «this» в Javascript
function addSponsership(sponser) {
if (sponser.value == "N") {
document.getElementById('nameofperson').style.display = "block";
document.getElementById('nameofpersonvalue').style.display = "block";
document.getElementById('address').style.display = "block";
document.getElementById('addressvalue').style.display = "block";
document.getElementById('postcode').style.display = "block";
document.getElementById('postcodevalue').style.display = "block";
document.getElementById('telephone').style.display = "block";
document.getElementById('telephonevalue').style.display = "block";
document.getElementById('fax').style.display = "block";
document.getElementById('faxvalue').style.display = "block";
document.getElementById('emailaddress').style.display = "block";
}
if (sponser.value == "NH") {
document.getElementById('nameofperson').style.display = "none";
document.getElementById('nameofpersonvalue').style.display = "none";
document.getElementById('address').style.display = "none";
document.getElementById('th1').style.display = "none";
document.getElementById('th8').style.display = "table-row";
}
if (sponser.value == "Y") {
document.getElementById('nameofperson').style.display = "none";
document.getElementById('nameofpersonvalue').style.display = "none";
document.getElementById('address').style.display = "none";
}
}
функция вызывается из HTML с событием OnClick, который выглядит следующим образом:
<input type="radio" name="IPQ_FUND1" id="IPQ_FUND1" value="Y" checked="checked" onclick="addSponsership(this);"/>
Теперь я хочу, чтобы назвать все эти функции, используя событие OnLoad на элемент тела. Однако я не уверен, как это сделать. Пример:
function callAllOtherFunctions()
{
addSponsership(sponser)
addSponsership2(sponser)
addSponsership3(sponser)
etc...
}
Проблема в том, что я не могу найти способ, чтобы ссылаться на конкретные элементы, значения которых должны быть проверены. В идеале мне нужно найти решение этого без редактирования оригинальных функций, написанных моим коллегой.
Я пытался сделать это по отдельности, создавая еще одну функцию, которая выглядела так:
function addSponsershipLoad(inputID){
sponser = document.getElementById(inputID);
addSponsership(sponser);
}
и редактирование тегов тела, чтобы выглядеть следующим образом:
<body onload="addSponserShipLoad('IPQ_FUND1');">
, но, несмотря на консоли не показываются ошибок, это не сработало.
Итак, я знаю, что я, вероятно, довольно толстый, и решение будет простым, но, пожалуйста, помогите, если сможете.
в соответствии с опубликованным кодом «addSponsership» не имеет случая для «IPQ_FUND1» только «N», «NH» и «Y».это, вероятно, причина неудачи. – abc123
Думаю, вам не нужна отдельная функция для передачи объекта-спонсора. вы можете сделать это так, от тела вызовите эту функцию при загрузке 'callAllOtherFunctions (objId)', тогда в callallotherfunctions просто извлеките ссылку на объект с помощью id. 'function callAllOtherFunctions (objId) { sponser = document.getElementById (objId); addSponsership (sponser) addSponsership2 (sponser) addSponsership3 (sponser)} ' – dreamweiver
Вы уверены, что используете ввод, код отлично выглядит из-за того, что я вижу. Возможно, вы можете console.log некоторые переменные в addSponsershipLoad, например 'console.log (sponser); console.log (sponser.value) 'и в addSponsership:' console.log (sponser); console.log (sponser.value) ' – HMR