У меня есть четыре переключателя, последняя из которых является опцией «другое». Нажатие на эту кнопку-переключатель открывает скрытое текстовое поле, чтобы пользователь мог объяснить дальше. Это часть более крупной формы, которая создает электронную почту на основе параметров, выбранных пользователем. По сути, необходимо объединить четыре переключателя / другое поле, чтобы ответ пользователя на этот раздел отображался в электронном письме, независимо от того, выбрали ли он переключатель или введите свой собственный ответ. Вот мой HTML:
<h1>Reason</h1>
<input type="radio" name="reason" class="reason" value="Customer requesting escalation" onclick="document.getElementById('hiddenOtherField').style.display='none'" checked>Customer requesting escalation<br>
<input type="radio" name="reason" class="reason" value="Workaround lost" onclick="document.getElementById('hiddenOtherField').style.display='none'">Workaround lost<br>
<input type="radio" name="reason" class="reason" value="Resolution overdue" onclick="document.getElementById('hiddenOtherField').style.display='none'">Resolution overdue<br>
<input type="radio" name="reason" class="reason" id="otherRadioBtn" onclick="document.getElementById('hiddenOtherField').style.display='block'">Other...<br>
<div id="hiddenOtherField" style="display: none">
<input type="text" name="reason" id="otherFreeTextField" placeholder="Please explain...">
</div><br>
Я получаю выбранное значение этого раздела «Причина» из jQuery:
$(".reason:checked").val()
Но когда проверено «Другое», значение $(."reason")
«включено» вместо того, что они вводили. Я понятия не имею, почему, как и откуда или откуда взято слово «on» (это нигде в моем коде). Я знаю, что что-то упустил, но я не знаю что. Как бы я сделал так, чтобы, если пользователь выбирает радиокнопку «прочее», то, что он вводит в текстовое поле, становится значением «причина»? Я пробовал кучу разных операторов if, но прошло уже несколько часов и ничего не работает. Пожалуйста помоги! Спасибо!
Редактировать - вот код Javascript, который я использую для отображения своих значений. Опять же, это все пользовательская HTML-форма, используемая для создания электронного письма на основе параметров, выбранных пользователем. Все остальные вещи, которые я получаю, работают, потому что они просты.
function generateEmail() {
var emailTo = $("#teamName").val();
var emailCC = $("#CC").val();
var emailSubject = $("#ticketNumber").val();
var emailBody = "Issue: " + $("#issue").val() + "%0A%0ACustomer Contact Information: " + $("#contactInformation").val() + "%0A%0ARequested Action: " + $(".requestedAction:checked").val() + "%0A%0AReason: " + $(".reason:checked").val() + "%0A%0AWorkaround Available? " + $(".workaround:checked").val();
location.href = "mailto:" + emailTo + "?cc=" + emailCC + "&subject=" + emailSubject + "&body=" + emailBody;
};
Я использую кнопку в конце формы для создания электронного письма:
<input type="submit" value="Generate email" onclick="generateEmail()">