2017-04-07 9 views
0

私は、MailChimpを使用して、フィールドを人のサイトにフォームを完成させるためのURLにマージします。 URLの情報をテキストボックスにあらかじめ入力しておきたい。電子メールマージからのURLを使用してJavaスクリプトを使用してWebフォームテキストボックスに入力する

例:http://www.sitename.com/page?fname=John&lname=Smith&[email protected]

私はこの時に初心者だと私はここで間違ってやっているかわかりません。ここに私の中心的なコードは次のとおりです。

<head> 

<script> 
$.extend({ 
    getUrlVars: function(){ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
    }, 
    getUrlVar: function(name){ 
    return $.getUrlVars()[name]; 
    } 
}); 
</script> 

</head> 

<body> 

    <form id="form_id_name" method="POST" action="/forms/users"> 

    <label for="fname">First Name:</label> 
    <input required="" class="text" id="user_first_name" name="user[first_name]" type="text" /> 

<script> 
$("#user_first_name").val($.getUrlVar("fname")); 
</script> 

    <label for="lname">Last Name:</label> 
    <input class="text" id="user_last_name" name="user[last_name]" type="text" /> 

<script> 
$("#user_last_name").val($.getUrlVar("lname")); 
</script> 

    <label for="email">Email Address:</label> 
    <input class="text" id="user_email" name="user[email]" type="email" /> 

<script> 
$("#user_email").val($.getUrlVar("email")); 
</script> 

    <input type="submit" name="commit" value="Submit" /> 

    </form> 

</body> 
+0

代わりにこれを試してみてくださいあなたはjQueryのを使用しているかのように見えますが、私はあなたがそれを正しく使用しているとは思いません。 '$ .extend'は2つのオブジェクトのプロパティをマージするオブジェクトを返します。オブジェクトは1つしかなく、出力されたオブジェクトは使用しません。私は自分で簡単にして、[url.js](http://jillix.github.io/url.js/)などのURL解析ライブラリを使用します。 –

答えて

0

@Mike McCaughanが言及しているように、あなたは何も拡張していません。限り、私はあなたがその関数を使用して、あなたはjquery関数/プラグインを作成しようとしている参照してくださいすることができます。

$.fn.extend({ 
 
    getUrlVars: function(){ 
 
    var vars = [], hash; 
 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
 
    for(var i = 0; i < hashes.length; i++) 
 
    { 
 
     hash = hashes[i].split('='); 
 
     vars.push(hash[0]); 
 
     vars[hash[0]] = hash[1]; 
 
    } 
 
    return vars; 
 
    }, 
 
    getUrlVar: function(name){ 
 
    return $.getUrlVars()[name]; 
 
    } 
 
});

関連する問題