Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery:更改表单中隐藏输入的值_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript JQuery:更改表单中隐藏输入的值

Javascript JQuery:更改表单中隐藏输入的值,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,如果您能帮助我解决以下问题,我将不胜感激。我见过,也有过类似的问题,但没有找到任何解决办法 我试图做的事情是在表单将数据发送到服务器之前更改隐藏的字段中的值,该服务器将为某个列表分配新用户。我们的想法是,我们在不同的页面上使用一个表单,提交时将更改与单击的元素(触发弹出窗口的元素类)对应的字段中的值 JS/JQ:替换输入中的值 var currentClass=null; //触发弹出窗口的元素类 $(“.popup pop、.link product tab、.popup footer、.

如果您能帮助我解决以下问题,我将不胜感激。我见过,也有过类似的问题,但没有找到任何解决办法

我试图做的事情是在表单将数据发送到服务器之前更改隐藏的
字段中的
值,该服务器将为某个列表分配新用户。我们的想法是,我们在不同的页面上使用一个表单,提交时将更改与单击的元素(触发弹出窗口的元素类)对应的
字段中的


JS/JQ:替换输入中的值

var currentClass=null;
//触发弹出窗口的元素类
$(“.popup pop、.link product tab、.popup footer、.popup adbf page、.popup aboutus page、.popup-404、.popup eco page”)。延迟(0)。单击(函数(){
KlaviyoSubscribe.attachToModalForm(“#认购表格”{
忽略cookie:true,
自定义\u成功\u消息:正确,
});
var calledClass=this.className;//将触发弹出窗口的类分配给“calledClass”变量
currentClass=calledClass;//将“calledClass”值分配给全局变量“currentClass”
});
//$('form').keyup(函数(){
$('form')。提交(函数(){
开关(currentClass){//使用currentClass查找输入字段的正确值
case'popup pop':$(“#hidden_field input”).val(“jeN5s3”);break;//根据触发的弹出窗口更改隐藏输入字段的值
案例“链接产品选项卡”:$(“#隐藏_字段输入”).val(“jeN5s3”);中断;
案例'弹出页脚':$(“#隐藏的_字段”).val(“v4pSbe”);break;
案例“弹出adbf页面”:$(“#隐藏#字段”).val(“DmCgw3”);中断;
案例‘弹出式生态页面’:$(“#隐藏的_字段”).val(“y2Z9Ly”);中断;
案例“popup aboutus page”:$(“隐藏字段”).val(“t26heU”);break;
案例'popup-404':$(“隐藏字段”).val(“jeN5s3”);break;
}    
});
$('form').submit(函数(){
$(“.klaviyo_modal”).fadeOut();
窗口打开(“https://example.com/thank-you");
}); 
HTML:Form


名字:
电子邮件地址
这似乎是错误的:

$("#hidden_field input")
上面的选择器的意思是“ID
#hidden_field
”的元素中的任何输入。不过,看起来这并不是您从HTML代码中寻找的内容

#隐藏_字段
已经是您的输入。更改:

$("#hidden_field input")
进入:

或:


更改每次出现的情况,它应该会起作用。

如果分配currentClass的任何class/click元素有多个class,请使用此代码

 var calledClass = this.className; 
将返回分配给元素的所有类,而不仅仅是您感兴趣的类。在开关中添加默认大小写以捕获此潜在问题

$('form').submit(function(){
    switch(currentClass) {   // taking currentClass to find correct value for input field
        case 'popup-pop': $("#hidden_field input").val("jeN5s3"); break; // changing value of hidden input field in correspondence to triggered popup 
        case 'link-product-tab': $("#hidden_field input").val("jeN5s3"); break;
        case 'popup-footer': $("#hidden_field").val("v4pSbe"); break;
        case 'popup-adbf-page': $("#hidden_field").val("DmCgw3"); break;    
        case 'popup-eco-page': $("#hidden_field").val("y2Z9Ly"); break;         
        case 'popup-aboutus-page': $("#hidden_field").val("t26heU"); break;
        case 'popup-404': $("#hidden_field").val("jeN5s3"); break;
// handle the case where currentClass is not considered
        default: console.log("Unknown class " + currentClass);
    }    
});

我仍然不知道它不起作用的原因(脚本是正确的…)。我已将()更改为()来重写脚本:

这个脚本是干什么用的?
此脚本将通过单击具有特定类的文本/按钮/img(例如,
.popup footer
)调用的特定弹出窗口分配给中的特定列表。
目的?
跟踪客户来自哪个订阅表单(即弹出窗口);单独的列表将有助于开展特别活动。
在klaviyo中有一个选项可以添加自定义属性,如$source_page、$time等,但在我们的例子中,需要另一个解决方案——正如我们使用此脚本所做的那样

$(“表单”).submit(函数(){
开关(电流等级){
case“popup pop”:$(“input#klaviyo_input”).val(“jeN5s3”);break;
案例“链接产品选项卡”:$(“输入”#klaviyo_输入”).val(“jeN5s3”);break;
案例“弹出式页脚”:$(“输入”#klaviyo_输入”).val(“z62byt”);中断;
案例“弹出式adbf页面”:$(“输入”#klaviyo_输入”).val(“DmCgw3”);中断;
案例“弹出式生态页面”:$(“输入”#klaviyo_输入”).val(“y2Z9Ly”);中断;
案例“popup aboutus page”:$(“input#klaviyo_input”).val(“t26heU”);break;
案例“popup-404”:$(“input#klaviyo_input”).val(“jeN5s3”);break;
默认值:console.log(“未知类”+currentClass);
}
$(“.klaviyo_modal”).fadeOut();
窗口打开(“https://example.com/thank-you");
});

控制台中是否有任何错误?为什么要在弹出式单击处理程序中添加延迟(0)?@RamblinRose testingpurposes@MartinShishkov关于这一点,没有什么是我不好的,我举了一个错误的例子。但即使这样,它也只适用于“404页”和“弹出页脚”两种情况“。我也不知道它为什么不更改输入中的值。@AlexCross您仍然为
弹出窗口
链接产品选项卡
@Barmar
控制台选择了错误的选择器。日志(currentClass)
显示
,但如果我执行
警报(currentClass)
它将向我显示毫无意义的活动类。您将它们放在程序中的同一位置?为什么要放一个错误的示例,我们应该如何帮助您呢!?我尝试用另一种方法解决它,清除所有类,只留下一个(即使此元素只有一个类)
$('.+类。加入(',。)。单击(function(){var classNames=this.className.split(/\s+/);cls=$.grep(classNames,function(c,i){return$.inArray(c,classes)!==-1;})[0];cls='.+cls;KlaviyoSubscribe.attachtomaldorm('#弹出窗口',{忽略cookie true,自定义成功消息:true,额外属性:{{{page.title}}};});
我已经尝试过了,控制台日志是空的……没有错误
 var calledClass = this.className; 
$('form').submit(function(){
    switch(currentClass) {   // taking currentClass to find correct value for input field
        case 'popup-pop': $("#hidden_field input").val("jeN5s3"); break; // changing value of hidden input field in correspondence to triggered popup 
        case 'link-product-tab': $("#hidden_field input").val("jeN5s3"); break;
        case 'popup-footer': $("#hidden_field").val("v4pSbe"); break;
        case 'popup-adbf-page': $("#hidden_field").val("DmCgw3"); break;    
        case 'popup-eco-page': $("#hidden_field").val("y2Z9Ly"); break;         
        case 'popup-aboutus-page': $("#hidden_field").val("t26heU"); break;
        case 'popup-404': $("#hidden_field").val("jeN5s3"); break;
// handle the case where currentClass is not considered
        default: console.log("Unknown class " + currentClass);
    }    
});