javascript - 通过 jquery 从文本框中获取值
问题描述
我jquery
用来获取以 id 为 qty 命名的文本输入框的值,但是我不确定如何让该值出现在我javascript
的谷歌分析数据层推送中。
那么如何让 qtyvalue 的值正确显示在以下代码的数量部分中?
<script>
require(['jquery'], function ($) {
//GET VALUE OF QTY BOX
qtyvalue = $("#qty").val();
$(".tocart").click(function(){
dataLayer.push({
'event': 'addToCart',
'ecommerce': {
'currencyCode': 'USD',
'add': {
'products': [{
'name': '<?php echo noSingleQuote($all_names);?>', // Name or ID is required
'id': '<?php echo "$google_sku";?>', // Name or ID is required
'price': '<?php echo "$google_price";?>', // Insert product price
'brand': '<?php echo "$google_site_owned_by_name";?>', // Insert product brand
'category': '<?php echo "$category_name";?>', // Insert product category
'quantity': 'qtyvalue',
}]
}
}
});
});
});
</script>
解决方案
两件事情:
1) 'quantity': 'qtyvalue'
- 你在那里传递一个硬编码的字符串,而不是一个变量。因此,您将按字面意思将“qtyvalue”一词放入字段中,而不是变量的值。您需要删除引号。
2)您可能应该qtyvalue = $("#qty").val();
在“单击”函数内移动该行...否则您将获得文本框的值,就像加载页面时一样,而不是单击按钮时。
这是一个修复了这两件事的示例:
<script>
require(['jquery'], function ($) {
$(".tocart").click(function(){
qtyvalue = $("#qty").val();
dataLayer.push({
'event': 'addToCart',
'ecommerce': {
'currencyCode': 'USD',
'add': {
'products': [{
'name': '<?php echo noSingleQuote($all_names);?>', // Name or ID is required
'id': '<?php echo "$google_sku";?>', // Name or ID is required
'price': '<?php echo "$google_price";?>', // Insert product price
'brand': '<?php echo "$google_site_owned_by_name";?>', // Insert product brand
'category': '<?php echo "$category_name";?>', // Insert product category
'quantity': qtyvalue,
}]
}
}
});
});
});
</script>
推荐阅读
- python - 在 pandas 数据框上同时应用过滤器并替换同一列
- php - 为什么会出现此错误“无效或意外令牌”?
- javascript - 使用 JavaScript 进行网页抓取?JavaScript 文件 I/O?JavaScript 遍历 URL?自动加载外部脚本?
- python - 如何找到聚类算法的成功率?
- math - 拟合返回非实数错误 (Mathematica)
- apache-spark - 如何使用 PySpark 转换结构化流?
- python - sckit-learn 中多类问题的编码标签
- php - Laravel - 从 DB::table()->insert 访问一个值
- jquery - 有没有办法让偏移量高出 10 像素?
- c# - 隐藏或删除下拉列表中的重复选项