JavaScript Cookie - 表单未传递utm_source值

时间:2017-08-15 19:10:59

标签: javascript

我正在使用JavaScript创建一个发布utm_source值=“”的cookie。

在控制台上,我看到了utm_source值,但没有在表单

上看到

    // Parse the URL
    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    // Give the URL parameters variable names
    var source = getParameterByName('utm_source');

    // Set the cookies
    if(Cookies.set('utm_source') == null || Cookies.set('utm_source') == "") {
        Cookies.set('utm_source', source);
    }

    // Grab the cookie value and set the form field values
    $(document).ready(function(){
        $('input[name=utm_source').val(utm_source);
    });

</script>

2 个答案:

答案 0 :(得分:0)

问题1

$('input[name=utm_source').val(utm_source);

上述问题导致问题有两个原因:

  • 你错过了一个结束括号
  • utm_source未定义(在您发布的代码段中)

如果您想使用cookie值,您应该这样做:

$('input[name=utm_source]').val(Cookies.get('utm_source'));

问题2

在这一行:

if(Cookies.set('utm_source') == null || Cookies.set('utm_source') == "") {

我认为您错误地使用了.set()而不是.get(),并且可以将其简化为:

if(!Cookies.get('utm_source')) {

这可行,因为null""都是假值。

答案 1 :(得分:0)

谢谢你们!搞定了!不得不替换name = customID