SS=正方形空间
以前,Ian_A在SS论坛上发布了一个脚本,用于在提交的表单上添加唯一标识符,以防止gmail中的电子邮件整理。这使我们能够通过点击回复来回复每个收到的表单,而无需将默认的gmail框更改为对话视图等。
我们无法更改Gmail设置。(无法在不疏远某些用户的情况下打开对话视图)
SS已经改变了表单的工作方式,我相信脚本的$参数不再针对字段的正确部分。我没有编码背景,我有限的理解是$是jquery选择字段的方式。我不知道如何构造jquery选择器来选择我想要的字段,也许是类ID,它对表单上的每个字段都是唯一的。
只有一种形式可以让它工作。我只能访问头代码注入和自定义CSS。我需要通过表格发送的每封电子邮件都有随机化受试者(或时间/日期戳)
下面是在SS更新站点之前工作的代码示例。
<script>
$(document).ready(function(){
var timecode = Date.now();
var subjecttxt = "#" + timecode;
$('form').find("input[type=text], text").each(function()
{
if(!$(this).val()) {
$(this).attr("value", subjecttxt);
$(this).attr("readonly", true);
$(this).css("display","none");
var val = subjecttxt;
return ( val !== subjecttxt );
}
});
});
$(document).ready(function(){
$('form').find("label[class=title]").each(function()
{
if(!$(this).val()) {
$(this).css("display","none");
var val2 = "none";
return ( val2 !== "none" );
}
});
});
</script>
Source= SS Forum Post我们的网站联系我们page= Form in question
下面是我可以看到的与空白主题文本框相关的信息,我既希望对用户隐藏,又希望在发送时使用唯一标识符自动填充,以便我们可以单独识别每个发送。我觉得jquery应该有一种方法让它选择这个,而不是表单上的第一个字段不再工作,但我不知道如何更改上面的代码,使其工作,尽管测试无法看到为什么它不工作(没有错误抛出页面加载,我不知道如何检查)
例如:$('form ').find(input.text-dfd9bd71-70a1-413d-81f2-dae19bb38da2)
我知道这不起作用,但我不知道为什么它不起作用,我觉得它可以使用div id,或类,但idk如何使jquery做到这一点,文档是我目前的理解。
<div id="text-dfd9bd71-70a1-413d-81f2-dae19bb38da2" class="form-item field text">
<label class="title" for="text-dfd9bd71-70a1-413d-81f2-dae19bb38da2-field">
Subject
</label>
<input
class="field-element text"
type="text"
id="text-dfd9bd71-70a1-413d-81f2-dae19bb38da2-field"
/>
</div>
我试图隐藏Squarespace联系人表单顶部的一个部分,并让jquery选择添加唯一标识符的框。
由于SS表格的更改,这不再按预期工作。
1条答案
按热度按时间r9f1avp51#
不幸的是,问题是,对于新的Squarespace表单块,Squarespace现在密切管理每个字段中的值,并仅基于实际的用户输入事件(可能使用React,虚拟/影子DOM和
isTrusted
事件属性)持久地维护它们。这意味着,尽管您可以使用JavaScript设置字段值,但这样做不会对Squarespace最终提交的值产生影响。Squarespace将在用户的每个操作(键入另一个字段、提交表单等)之后相应地重置表单字段值。因此,我不认为这可以用JavaScript来解决。不过,它可能适用于较旧的、未编辑的表单块。
除了使用第三方表单服务(Google Forms,JotForm等)之外,还有一种替代方案:强制“主题”字段显示为“名称”字段。您可以通过执行以下操作来实现此目的:
1.从表单中删除“名称”字段。
1.确保“主题”字段是表单中的第一个字段。
1.将以下内容添加到特定于页面的头注入:
现在,“主题”字段将显示为标题为“名称”,并且将只是一个字段(而不是两个,第一个和最后一个)。当提交通过时,电子邮件主题将类似于:“表单提交-联系人- John Smith”。但在邮件正文中,您会看到“主题:约翰·史密斯。这是因为我们只是用CSS使第一个字段显示为“Name”。
确保将“主题”字段设置为必填字段。并删除可能已添加以设置“Subject”值的其他脚本。
当然,如果两个人输入相同的名字,这些电子邮件可能会被整理。
另外,考虑错误消息(例如,如果用户将第一个字段留空并尝试提交表单)可能会让用户感到有点困惑。
这是一个有点愚蠢的变通办法。但如果你真正关心的是电子邮件的主题行,它可能对你有用。