Mailto on submit button

后端 未结 6 1412
旧巷少年郎
旧巷少年郎 2020-11-28 14:46

Is it possible to implement mailto: function on submit button like ? I use ASP.NET MVC. Maybe there is some tricky c

相关标签:
6条回答
  • 2020-11-28 15:24

    In HTML you can specify a mailto: address in the <form> element's [action] attribute.

    <form action="mailto:youraddr@domain.tld" method="GET">
        <input name="subject" type="text" />
        <textarea name="body"></textarea>
        <input type="submit" value="Send" />
    </form>
    

    What this will do is allow the user's email client to create an email prepopulated with the fields in the <form>.

    What this will not do is send an email.

    0 讨论(0)
  • 2020-11-28 15:28

    What you need to do is use the onchange event listener in the form and change the href attribute of the send button according to the context of the mail:

    <form id="form" onchange="mail(this)">
      <label>Name</label>
      <div class="row margin-bottom-20">
        <div class="col-md-6 col-md-offset-0">
          <input class="form-control" name="name" type="text">
        </div>
      </div>
    
      <label>Email <span class="color-red">*</span></label>
      <div class="row margin-bottom-20">
        <div class="col-md-6 col-md-offset-0">
          <input class="form-control" name="email" type="text">
        </div>
      </div>
    
      <label>Date of visit/departure </label>
      <div class="row margin-bottom-20">
        <div class="col-md-3 col-md-offset-0">
          <input class="form-control w8em" name="adate" type="text">
          <script>
            datePickerController.createDatePicker({
              // Associate the text input to a DD/MM/YYYY date format
              formElements: {
                "adate": "%d/%m/%Y"
              }
            });
          </script>
        </div>
        <div class="col-md-3 col-md-offset-0">
          <input class="form-control" name="ddate" type="date">
        </div>
      </div>
    
      <label>No. of people travelling with</label>
      <div class="row margin-bottom-20">
        <div class="col-md-3 col-md-offset-0">
          <input class="form-control" placeholder="Adults" min=1 name="adult" type="number">
        </div>
        <div class="col-md-3 col-md-offset-0">
          <input class="form-control" placeholder="Children" min=0 name="childeren" type="number">
        </div>
      </div>
    
      <label>Cities you want to visit</label><br />
      <div class="checkbox-inline">
        <label><input type="checkbox" name="city" value="Cassablanca">Cassablanca</label>
      </div>
      <div class="checkbox-inline">
        <label><input type="checkbox" name="city" value="Fez">Fez</label>
      </div>
      <div class="checkbox-inline">
        <label><input type="checkbox" name="city" value="Tangier">Tangier</label>
      </div>
      <div class="checkbox-inline">
        <label><input type="checkbox" name="city" value="Marrakech">Marrakech</label>
      </div>
      <div class="checkbox-inline">
        <label><input type="checkbox" name="city" value="Rabat">Rabat</label>
      </div>
    
      <div class="row margin-bottom-20">
        <div class="col-md-8 col-md-offset-0">
          <textarea rows="4" placeholder="Activities Intersted in" name="activities" class="form-control"></textarea>
        </div>
      </div>
    
    
      <div class="row margin-bottom-20">
        <div class="col-md-8 col-md-offset-0">
          <textarea rows="6" class="form-control" name="comment" placeholder="Comment"></textarea>
        </div>
      </div>
    
      <p><a id="send" class="btn btn-primary">Create Message</a></p>
    </form>
    

    JavaScript

    function mail(form) {
        var name = form.name.value;
        var city = "";
        var adate = form.adate.value;
        var ddate = form.ddate.value;
        var activities = form.activities.value;
        var adult = form.adult.value;
        var child = form.childeren.value;
        var comment = form.comment.value;
        var warning = ""
        for (i = 0; i < form.city.length; i++) {
            if (form.city[i].checked)
                city += " " + form.city[i].value;
        }
        var str = "mailto:abc@x.com?subject=travel to morocco&body=";
        if (name.length > 0) {
            str += "Hi my name is " + name + ", ";
        } else {
            warning += "Name is required"
        }
        if (city.length > 0) {
            str += "I am Intersted in visiting the following citis: " + city + ", ";
        }
        if (activities.length > 0) {
            str += "I am Intersted in following activities: " + activities + ". "
        }
        if (adate.length > 0) {
            str += "I will be ariving on " + adate;
        }
        if (ddate.length > 0) {
            str += " And departing on " + ddate;
        }
        if (adult.length > 0) {
            if (adult == 1 && child == null) {
                str += ". I will be travelling alone"
            } else if (adult > 1) {
                str += ".We will have a group of " + adult + " adults ";
            }
            if (child == null) {
                str += ".";
            } else if (child > 1) {
                str += "along with " + child + " children.";
            } else if (child == 1) {
                str += "along with a child.";
            }
        }
    
        if (comment.length > 0) {
            str += "%0D%0A" + comment + "."
        }
    
        if (warning.length > 0) {
            alert(warning)
        } else {
            str += "%0D%0ARegards,%0D%0A" + name;
            document.getElementById('send').href = str;
        }
    }
    
    0 讨论(0)
  • 2020-11-28 15:32

    Or you can create a form with action:mailto

    <form action="mailto:rohit@k.com"> 
    

    check this out.

    http://webdesign.about.com/od/forms/a/aa072699mailto.htm

    But this actually submits a form via email.Is this what you wanted? You can also use just

    <button onclick=""> and then some javascript with it to ahieve this.

    And you can make a <a> look like button. There can be a lot of ways to work this around. Do a little search.

    0 讨论(0)
  • 2020-11-28 15:34

    The full list of possible fields in the html based email-creating form:

    • subject
    • cc
    • bcc
    • body
    <form action="mailto:youraddr@domain.tld" method="GET">
      <input name="subject" type="text" /></br>
      <input name="cc" type="email" /><br />
      <input name="bcc" type="email" /><br />
      <textarea name="body"></textarea><br />
      <input type="submit" value="Send" />
    </form>
    

    https://codepen.io/garfunkel61/pen/oYGNGp

    0 讨论(0)
  • 2020-11-28 15:34

    Just include "a" tag in "button" tag.

    <button><a href="mailto:..."></a></button>
    
    0 讨论(0)
  • 2020-11-28 15:45

    This seems to work fine:

    <button onclick="location.href='mailto:em@i.l';">send mail</button>
    
    0 讨论(0)
提交回复
热议问题