下拉菜单更改表单中的电子邮件

时间:2016-02-10 11:38:07

标签: javascript php html



<FORM METHOD="POST" ACTION="mailto:mariamcsorley@hotmail.com">


<p> Name: <INPUT TYPE="text" NAME= "name" SIZE="30"> </p>
<p> Email: <INPUT TYPE="text" NAME= "email" SIZE="30"> </p>
<p> Phone: <INPUT TYPE="text" NAME= "telephone" SIZE="30"> </p>

<p> Practice: <SELECT NAME= "practice" SIZE="1">
<OPTION SELECTED>*Select Practice*
<OPTION>Dungannon
<OPTION>Cookstown
<OPTION>Coalisland
<OPTION>Portnaglone
<OPTION>Aughnacloy
</SELECT> </p>

<p> Species: <SELECT NAME= "species" SIZE="1">
<OPTION SELECTED>*Select Species*
<OPTION>Small Animal
<OPTION>Equine
<OPTION>Farm
<OPTION>Pig
<OPTION>Poultry
</SELECT> </p>

<p> Preferred Date: <SELECT NAME= "day" SIZE="1">
<OPTION SELECTED>*Day* <OPTION>01 <OPTION>02 <OPTION>03 <OPTION>04 <OPTION>05 <OPTION>06 <OPTION>07 <OPTION>08 <OPTION>09 <OPTION>10 <OPTION>11 <OPTION>12 <OPTION>13 <OPTION>14 <OPTION>15 <OPTION>16 <OPTION>17 <OPTION>18 <OPTION>19 <OPTION>20 <OPTION>21 <OPTION>22 <OPTION>23 <OPTION>24 <OPTION>25 <OPTION>26 <OPTION>27 <OPTION>28 <OPTION>29 <OPTION>30 <OPTION>31 </SELECT>

<SELECT NAME="month" SIZE="1">
<OPTION SELECTED>*Month* <OPTION>Jan <OPTION>Feb <OPTION>Mar <OPTION>Apr <OPTION>May <OPTION>Jun <OPTION>Jul <OPTION>Aug <OPTION>Sep <OPTION>Oct <OPTION>Nov <OPTION>Dec </SELECT>

<SELECT NAME="year" SIZE="1">
<OPTION SELECTED>*Year* <OPTION>2016 <OPTION>2017 <OPTION>2018 <OPTION>2019 <OPTION>2020 <OPTION>2021 <OPTION>2022 <OPTION>2023 <OPTION>2024 <OPTION>2025 <OPTION>2026 <OPTION>2027 </SELECT> </p>


<p> Preferred Time: <SELECT NAME="hour" SIZE="1">
<OPTION SELECTED>*Hour* <OPTION>08 <OPTION>09 <OPTION>10 <OPTION>11 <OPTION>12 <OPTION>13 <OPTION>14 <OPTION>15 <OPTION>16 <OPTION>17 <OPTION>18 <OPTION>19 <OPTION>20 </SELECT>

<SELECT NAME="minute" SIZE="1">
<OPTION SELECTED>*Minute* <OPTION>00 <OPTION>15 <OPTION>30 <OPTION>45 </SELECT> </p>


<p> Details: <TEXTAREA NAME="details" ROWS=6 COLS=40>
</TEXTAREA> </p>

<INPUT TYPE="submit">
</form>
&#13;
&#13;
&#13;

您好,有什么方法我可以使用php或函数来更改电子邮件,因为练习被更改了。例如,当从练习下拉菜单中选择Dungannon时,dungannon@dungannon.com会通过电子邮件发送,当选择Coalisland时,会将表格通过电子邮件发送到coalisland@coalisland.com?

我对此一无所知,因此一直试图弄明白并使用谷歌搜索解决方案,但我似乎无法得到任何工作 - 任何帮助都非常感激...谢谢!

2 个答案:

答案 0 :(得分:1)

更改您的HTML代码

<INPUT TYPE="text" id="email" NAME= "email" SIZE="30"> <br>

 Practice: <SELECT NAME= "practice" SIZE="1"onChange="getData(this);">
      <OPTION SELECTED>*Select Practice*
      <OPTION>Dungannon
      <OPTION>Cookstown
      <OPTION>Coalisland
      <OPTION>Portnaglone
      <OPTION>Aughnacloy
</SELECT> 

Javascirpt代码

function getData(title)
{
     var selectedText = title.options[title.selectedIndex].text
     var emailValue="";
     if(selectedText=="Dungannon")
     {
         emailValue = "dungannon@dungannon.co.uk";
     }
     else if(selectedText=="Cookstown"){
         emailValue= "cookstown@cookstown.co.uk";
     }
     document.getElementById("email").value = emailValue;
 }

这是有效的codepen

答案 1 :(得分:0)

要在表单元素中设置电子邮件地址,请修改html以包含onchange事件处理程序,如下所示,然后在下面添加javascript。

<p> practice: <select name="practice" onchange='setemail(this.value)'>
    <option selected hidden='true'>*select practice*
    <option value='dungannon'>dungannon
    <option value='cookstown'>cookstown
    <option value='coalisland'>coalisland
    <option value='portnaglone'>portnaglone
    <option value='aughnacloy'>aughnacloy
</select> </p>

<script>
    function setemail(value){
        /* to change form action */
        document.querySelectorAll('form[name="frmhot"]')[0].setAttribute('action','mailto:'+value+'@'+value+'.co.uk' );
        /* to set value of text field called `email` */
        document.querySelectorAll('form[name="frmhot"] input[type="text"][name="email"]')[0].value=value+'@'+value+'.com';
    }
</script>

我注意到表单方法已更改为您的电子邮件地址 - 我并非100%确定这将按您的预期运行,但如果您希望更改表单操作而不是/或更改表单中的电子邮件字段的值然后需要对javascript函数稍作修改。

将表单操作设置为mailto很可能会调用客户端计算机上的邮件客户端(不确定它在移动设备上的工作方式) - 是预期的操作方法还是应该发送电子邮件直接?

来自@OP:

它适用于应用程序,所以我有一页代码可以执行此操作,因此如果我要执行某项功能,则必须将标记放入其中。我很无能,但是当你点击提交时,我希望它能够改为通过电子邮件发送练习..我能正确解释这个吗?