【问题标题】:How to use jQuery .val() in a salesforce aura lightning component?如何在 Salesforce 光环闪电组件中使用 jQuery .val()?
【发布时间】:2016-05-18 21:56:05
【问题描述】:
我正在尝试使用以下页面上的 jQuery .val() 函数来预填充一些信息:
https://tophatsupport.force.com/s/contactsupport
我正在使用类似的东西:
$("input[placeholder='Top Hat Username *']").val("This is a test");
这有效并填充了该字段,但是当我尝试提交表单时,它将该字段标记为无效,就好像那里还没有填写任何内容一样。
我想知道这里是否有人知道如何使用 JS 或 jQuery 填写这些字段,并在提交表单时使它们成为有效字段。
感谢您对互联网的帮助!
【问题讨论】:
标签:
javascript
jquery
salesforce
【解决方案1】:
您提供的 url 在页面上有某种 javascript,它每 500 毫秒检查一次 url,并使用 url 查询字符串中的值更新用户名和电子邮件字段的值。如果 url 没有任何查询字符串,则正在更新导致问题的空白值。
如果这是您的页面,那么如果查询字符串不存在,则必须修改 javascript 以不更新该字段。
如果您提供查询字符串,则会填充电子邮件和用户名,就像提供 window.location.search = "username=This is a test&email=test@test.com"。
【解决方案2】:
您的 jQuery sn-p 是正确的并且可以按预期工作。只是您设置了setInterval,它会不断覆盖您的输入字段:
queryOutput = setInterval(function(){
if($(".queryOutput").parent()){
console.log("Found queryOutput, appending test text.");
$(".queryOutput").html("Username: " + getQueryVariable("username") + "<br>" + "First Name: " + getQueryVariable("firstname") + "<br> Last Name: " + getQueryVariable("lastname"));
if($("input[placeholder='Top Hat Username *']")){
// HERE: getQueryVariable("username") returns undefined.
$("input[placeholder='Top Hat Username *']").val(getQueryVariable("username"));
$("input[placeholder='Email *']").val(getQueryVariable("email"));
}
if($(".queryOutput").html() != "Query output here"){
//clearInterval(queryOutput);
}
}
}, 500);
【讨论】:
-
乌兹别克琼,感谢您的回复!问题是,如果你运行 clearInterval(queryOutput);然后在您的控制台中尝试使用 .val() 函数,仍然会返回错误。或者,如果您使用 URL:tophatsupport.force.com/s/… 那么理论上它应该能够接受这个预填充数据到表单中,但它没有并且认为它没有被填写。我让它每 500 毫秒更新一次,因为一些后端脚本会自动清除提交时的值。这是一个我似乎无法破解的非常有趣的谜题