javascript - 设置默认选项并禁用警报
问题描述
我已经尝试了一段时间来让它工作。我对 jquery 或 javascript 没有太多经验。我想设置一个在按下按钮时从下拉选项中选择的默认选项。我希望这也可以防止出现警报(不确定是否正确)。我已将以下代码添加到 squarespace 的“代码注入”部分,这似乎工作正常。(已编辑,我已按照建议删除了代码)
我正在使用盐水模板。这是网站的链接https://www.metastudio35.com/private-photography-services/event-collection密码是“Google360”。
<squarespace:script src="plugin.js" combo="true"?>
<squarespace:script src="site.js" combo="true"?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
然后,我在需要重定向按钮的页面中添加了以下代码。这也有效,但没有 "$("#Additional Photos").val("0");" 和 "$( ".sqs-widgets-confirmation-content clear" ).dialog( "close" )" 行。
<script>
$(document).ready(function(){
$("#Additional Photos").val("0");
$( ".sqs-widgets-confirmation-content clear" ).dialog( "close" )
$(".sqs-add-to-cart-button").click(function(){
window.location = '/booking/';
});
});
</script>
这是我要删除/禁用的对话框的屏幕截图。 对话框弹出截图
如果有人可以为我指出正确的方向或告诉我我做错了什么,那将是非常好的学徒。
谢谢您的帮助。
解决方案
我检查了您的网站,您的模板似乎没有使用 jQuery,而不是仅仅为这个简单的功能包含 jQuery,而是用 vanilla JS 编写了以下代码。
function setValue() {
var dropdown = document.querySelectorAll('[data-variant-option-name="Additional Photos"]')[0];
dropdown.value = '0';
Y.one('#'+dropdown.id).simulate('change');
}
window.onload = setValue;
如果您有兴趣弄清楚为什么您的代码无法正常工作,以下是解释:
$('#Additional Photos').val("0")
这行代码将 ID 为“Additional Photos”的元素设置为“ 0” 。
您的“附加照片”选择框没有“附加照片”的ID,而是 - 它有一个随机生成的 ID,每次刷新页面时都会重新生成。
因此,您的代码不起作用的原因是因为您只是针对错误的元素:)
var dropdown = document.querySelectorAll('[data-variant-option-name="Additional Photos"]')[0];
由于选择框的 ID 不是恒定的,我们通过“数据变量选项名称”属性来定位选择框。我只是通过检查 ChromDev 工具上的选择框找出了这个常量属性。
dropdown.value = '0';
Y.one('#'+dropdown.id).simulate('change');
要考虑的另一件事是您的模板使用YUI来处理选择框。这意味着我们需要手动触发“更改”事件以更新 UI。从上面的代码可以看出,第一行是设置选择框的值,第二行是告诉 YUI 模拟 'change' 事件,从而更新 UI。
希望这可以帮助 !
推荐阅读
- css - 让悬停选择器在包含其他元素的锚点上工作
- mysql - MySQL:如何插入字符“@”
- kubernetes - 当 Pod 变为 CrashLoopBackOff 时,如何访问它?
- spring-boot - 将 Feign OkHttpClient 配置为不在地址 localhost* 上使用代理
- python - 如何在python中遍历对象的arraylist
- kotlin - 使用 POJO 使用 Feign QueryMap
- javascript - TestingCompilerFactory 没有提供者
- javascript - 在javascript字符串中添加多个中断
- javafx - 将 textarea 高度设置为 tab-content-size 高度的问题
- c - 在 Cooja 中同时使用 rest 和 rime 的编译错误