Pre-fill form field via URL in html

前端 未结 4 2203
一向
一向 2020-12-06 01:40

I am looking for a simple way to pre-fill a field in my contact form when ever a user clicks on a link that is given in some other page.

This is my contact form in h

4条回答
  •  抹茶落季
    2020-12-06 02:33

    JavaScript has no built-in functions to parse url parameters like that (Since those GET parameters are usually used to send data to the server).
    I'd suggest using a hash instead (A hash is purely client-side):

    www.xyz.com/contact.html#name=some_text&email=more%20text

    Now, add some id's to your fields:

    Your name:

    Your email:

    Then set the values like this, on load:

    var hashParams = window.location.hash.substr(1).split('&'); // substr(1) to remove the `#`
    for(var i = 0; i < hashParams.length; i++){
        var p = hashParams[i].split('=');
        document.getElementById(p[0]).value = decodeURIComponent(p[1]);;
    }
    

    Working example

    The big advantage of this is that it's flexible. If you want to set the values of 2 fields, you supply those 2 fields' id's in the hash:

    www.xyz.com/contact.html#name=some_text&email=more%20text

    4 fields? 4 id's:

    www.xyz.com/contact.html#name=some_text&email=more%20text&username=john&age=23

    No need to edit the code, then.

提交回复
热议问题