Можно ли динамически установить получателя MAILTO: только с помощью HTML и JavaScript?

Я создаю форму, используя только HTML и JavaScript, где я хочу иметь возможность динамически устанавливать получателя POST-формы, изменяя адрес MAILTO: или адрес CC строки mailto:. Это будет определяться значением текстового поля, если это вообще возможно. Цель этой функции заключается в том, что данные формы должны быть отправлены другому менеджеру в зависимости от выбора, который они делают в раскрывающемся меню. Я видел, как это делается в одном месте (http://javascript.internet.com/forms/multiple-mailer.html), но моя проблема в том, что я заполняю раскрывающийся список из массива JS, который при выборе заполняет некоторые текстовые поля, как (http://www.webdeveloper.com/forum/showpost.php?p=984036&postcount=8). Итак, что я хочу сделать, это заполнить скрытый текстовый ввод моим раскрывающимся списком и использовать его, чтобы определить, кто получит электронное письмо.

Я должен отметить, что это для корпоративного сайта INTRAnet, где отсутствие настольного почтового клиента не является проблемой и где IE является единственным используемым браузером. У меня нет доступа к технологиям на стороне сервера, поэтому mailto — мой единственный вариант, пожалуйста, воздержитесь от комментариев, говорящих мне, насколько это плохая идея, лол. Спасибо!

Мысли?


person Spags    schedule 29.07.2011    source источник


Ответы (3)


Чтобы открыть почтовый клиент с каким-либо адресом электронной почты:

location = 'mailto:' + email_address;

Чтобы установить href элемента a, сначала получите его, используя что-то вроде document.getElementById, затем установите свойство href:

document.getElementById('someLink').href = 'mailto:' + email_address;

email_address — это строка, содержащая применимый адрес электронной почты — вы можете заменить ее выражением, которое получает значение раскрывающегося списка:

document.getElementById('someLink').href = 'mailto:' + document.getElementById('dropdown').value;
person Delan Azabani    schedule 29.07.2011
comment
Я могу быть просто очень глупым, но у меня есть некоторые трудности с реализацией этого. Может ли кто-нибудь опубликовать пример того, как это вписывается в основной заголовок формы: ‹form id=infoSubmit action=MAILTO:[email protected][email protected]&Subject=Это тема сообщения электронной почты method=post enctype=text /простой> - person Spags; 29.07.2011
comment
document.getElementById('infoSubmit').action = 'mailto:' + email_address; должно помочь. - person Delan Azabani; 30.07.2011

Вы можете просто установить атрибут href в строку, содержащую адрес электронной почты, используя Javascript.

person SLaks    schedule 29.07.2011
comment
Не могли бы вы привести пример или ссылку на него? - person Spags; 29.07.2011

Да, это возможно. У меня есть поле выбора в моей форме, похожее на это:

<td><select name="Division" id="Division" onChange="dirChange()" tabindex="3">
<option selected>Choose One</option>
<option value="Communications">Communications</option>
<option value="Legal Services">Legal Services</option>
</select>        &nbsp;</td>

Это относится к функции javascript:

function dirChange()
{
var i = document.all.Division.value;
switch (i)
{

    case "Communications":
        document.all.DeputyDirector.value = "Dave C.";
        document.all.form.action = "mailto:[email protected]?subject=Form";
        break;

    case "Legal Services":
        document.all.DeputyDirector.value = "Dixie P.";
        document.all.form.action = "mailto:[email protected]?subject=Form";
        break;

    default:
        document.all.DeputyDirector.value = "";
        break;

}
}

Затем этот javascript помогает заполнить необходимую информацию в текстовом поле и в форме для отправки по электронной почте выбранному человеку.

<tr>
  <td class="announcementText"> <span class="style12"><span class="style16"><span class="style31">*</span></span></span>Division Deputy Dir.:  </td>
  <td><input name="DeputyDirector" type="text" id="DeputyDirector" style="background-color:#cccccc; color:black; font-weight:bold; border:0; overflow:visible" size="38"></td>

</tr>

<form onChange="dirChange()" method="post" enctype="text/plain" name="form" id="form"   onSubmit="return checkform(this);">

Результирующий html для клиента, когда он выбирает отдел связи: для текстового поля:

<input name="DeputyDirector" type="text" id="DeputyDirector" style="background-color:#cccccc; color:black; font-weight:bold; border:0; overflow:visible" size="38" value = "Dave C.">

и для формы:

<form onChange="dirChange()" method="post" enctype="text/plain" name="form" id="form"   onSubmit="return checkform(this); action = "mailto:[email protected]?subject=Form">

или если они выбирают юридические услуги для текстового поля:

<input name="DeputyDirector" type="text" id="DeputyDirector" style="background-color:#cccccc; color:black; font-weight:bold; border:0; overflow:visible" size="38" value = "Dixie P.">

и для формы:

<form onChange="dirChange()" method="post" enctype="text/plain" name="form" id="form"   onSubmit="return checkform(this); action = "mailto:[email protected]?subject=Form">
person chris s.    schedule 12.04.2013