【问题标题】:setting hidden form field values with jquery使用 jquery 设置隐藏的表单字段值
【发布时间】:2017-10-26 04:44:25
【问题描述】:

我在读取 URL 参数后使用 js.cookie.js 设置 cookie 值。接下来,我想用 cookie 值填充一些隐藏字段。读取 URL 值和设置 cookie 有效,但在隐藏字段中设置值无效。

这是脚本:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="http://example.com/scripts/js.cookie.js" type="text/javascript"></script>

<script>

// 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 visitor_id = getParameterByName('utm_visitor_id');
var medium = getParameterByName('utm_medium');
var source = getParameterByName('utm_source');
var campaign = getParameterByName('utm_campaign');
var content = getParameterByName('utm_content');
var term = getParameterByName('utm_term');
var count_of_sessions = getParameterByName('utm_count_of_sessions');
var count_of_page_views = getParameterByName('utm_count_of_page_views');

// Set the cookies

Cookies.set('utm_visitor_id', visitor_id, { expires: 90 });
Cookies.set('utm_medium', medium, { expires: 90 });
Cookies.set('utm_source', source, { expires: 90 });
Cookies.set('utm_campaign', campaign, { expires: 90 });
Cookies.set('utm_content', content, { expires: 90 });
Cookies.set('utm_term', term, { expires: 90 });
Cookies.set('utm_count_of_sessions', count_of_sessions, { expires: 90 });
Cookies.set('utm_count_of_page_views', count_of_page_views, { expires: 90 });


// Grab the cookie value and set the form field values
$(document).ready(function(){
	$('input[name=00N4100000NglQ2').val(utm_visitor_id);
	$('input[name=00N4100000NgleO').val(utm_medium);
	$('input[name=00N4100000NglpC').val(utm_source);
	$('input[name=00N4100000NglyY').val(utm_campaign);
	$('input[name=00N4100000NgmBh').val(utm_content);
	$('input[name=00N4100000NgmIs').val(utm_term);
	$('input[name=00N4100000NgmQw').val(utm_count_of_sessions);
	$('input[name=00N4100000NgmZ5').val(utm_count_of_page_views);
});

</script>

这是表单中的隐藏字段,id="contact-form"

<!-- Visitor ID: -->
  <input id="00N4100000NglQ2" maxlength="255" name="00N4100000NglQ2" size="20" type="hidden" value="" /> 

  <!-- Medium: -->
  <input id="00N4100000NgleO" maxlength="255" name="00N4100000NgleO" size="20" type="hidden" value="" /> 
  <!-- Source: -->

  <input id="00N4100000NglpC" maxlength="255" name="00N4100000NglpC" size="20" type="hidden" value="" /> 
  <!-- Campaign: -->
  <input id="00N4100000NglyY" maxlength="255" name="00N4100000NglyY" size="20" type="hidden" value="" /> 

  <!-- Content: -->
  <input id="00N4100000NgmBh" maxlength="255" name="00N4100000NgmBh" size="20" type="hidden" value="" /> 

  <!-- Term: -->
  <input id="00N4100000NgmIs" maxlength="255" name="00N4100000NgmIs" size="20" type="hidden" value="" /> 

  <!-- Count of Sessions: -->
  <input id="00N4100000NgmQw" maxlength="255" name="00N4100000NgmQw" size="20" type="hidden" value="" /> 

  <!-- Count of Pageviews: -->
  <input id="00N4100000NgmZ5" maxlength="255" name="00N4100000NgmZ5" size="20" type="hidden" value="" /> 

我想知道隐藏字段名称是否有问题,例如,00N4100000NgmZ5,它们是来自 salesforce.com 的自定义字段名称

感谢您的帮助。

【问题讨论】:

  • “不工作”是什么意思?
  • 在此评论之后没有没有获取 cookie 值:// Grab the cookie value and set the form field values。你研究过如何获取 cookie 吗?此外,您似乎没有在任何地方检查 cookie 是否存在。此外,您正在引用尚未设置的变量名称。请检查您的控制台是否有任何红色并先修复它们。

标签: javascript jquery


【解决方案1】:

您的每个选择器中似乎都缺少右括号。我想说这就是它无法将值插入输入字段的原因。

此外,请确保在将这些值插入输入字段之前收集并存储它们。

【讨论】:

    【解决方案2】:

    尝试在函数 getParameterByName() 上方声明所有变量,并将变量及其值加载到函数中,然后立即设置 cookie,并在完成将变量加载为简单的 $(function 后立即添加 jQuery 函数(){})。

    我猜问题是当你的 $(document).ready() 函数在页面加载时执行并且没有要加载的值。

    <script>
    
      var visitor_id;
      var medium;
      var source;
      var campaign;
      var content;
      var term;
      var count_of_sessions;
      var count_of_page_views;
    
    // 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
      visitor_id = getParameterByName('utm_visitor_id');
      medium = getParameterByName('utm_medium');
      source = getParameterByName('utm_source');
      campaign = getParameterByName('utm_campaign');
      content = getParameterByName('utm_content');
      term = getParameterByName('utm_term');
      count_of_sessions = getParameterByName('utm_count_of_sessions');
      count_of_page_views = getParameterByName('utm_count_of_page_views');
    
      // Set the cookies
    
      Cookies.set('utm_visitor_id', visitor_id, { expires: 90 });
      Cookies.set('utm_medium', medium, { expires: 90 });
      Cookies.set('utm_source', source, { expires: 90 });
      Cookies.set('utm_campaign', campaign, { expires: 90 });
      Cookies.set('utm_content', content, { expires: 90 });
      Cookies.set('utm_term', term, { expires: 90 });
      Cookies.set('utm_count_of_sessions', count_of_sessions, { expires: 90 });
      Cookies.set('utm_count_of_page_views', count_of_page_views, { expires: 90 });
      
      // Grab the cookie value and set the form field values
      $(function(){
        $('input[name=00N4100000NglQ2').val(utm_visitor_id);
        $('input[name=00N4100000NgleO').val(utm_medium);
        $('input[name=00N4100000NglpC').val(utm_source);
        $('input[name=00N4100000NglyY').val(utm_campaign);
        $('input[name=00N4100000NgmBh').val(utm_content);
        $('input[name=00N4100000NgmIs').val(utm_term);
        $('input[name=00N4100000NgmQw').val(utm_count_of_sessions);
        $('input[name=00N4100000NgmZ5').val(utm_count_of_page_views);
      });
    }
    
    </script>

    【讨论】:

      猜你喜欢
      • 2018-06-23
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 2013-04-20
      相关资源
      最近更新 更多