设置默认选项并禁用警报
Setting default option and disabling alert
我已经尝试了一段时间才能让它发挥作用。我对 jquery 或 javascript 没有太多经验。我想设置一个默认选项,该选项在按下按钮时从下拉选项中选择。我希望这也能防止出现警报(不确定是否正确)。我已将以下代码添加到 squarespace 的 "code injection" 部分,这似乎工作正常。 (已编辑,我已按照建议删除了代码)
我正在使用 Brine 模板。这是 link 网站 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>
这是我要remove/disable的对话框截图。
dialog box pop up screenshot
如果有人能指出我正确的方向或告诉我我做错了什么,那将是一个很好的学徒。
感谢您的帮助。
我检查了你的网站,你的模板似乎没有使用 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” .
您的 "Additional Photos" select 盒子 没有 ID "Additional Photos",而是- 它有一个随机生成的 ID,每次刷新页面时都会重新生成。
所以您的代码无法正常工作的原因是您只是定位了错误的元素:)
var dropdown = document.querySelectorAll('[data-variant-option-name="Additional Photos"]')[0];
由于 select 框的 ID 不是恒定的,我们改为通过 'data-variant-option-name' 属性定位 select 框。我只是通过检查 ChromDev 工具上的 select 框来找出这个常量属性。
dropdown.value = '0';
Y.one('#'+dropdown.id).simulate('change');
要考虑的另一件事是您的模板使用 YUI 来处理 select 框。这意味着我们需要手动触发 'change' 事件,以便 UI 更新。从上面的代码可以看出,第一行是设置 select 框的值,而第二行是告诉 YUI 模拟 'change' 事件,因此 - 更新UI.
希望对您有所帮助!
我已经尝试了一段时间才能让它发挥作用。我对 jquery 或 javascript 没有太多经验。我想设置一个默认选项,该选项在按下按钮时从下拉选项中选择。我希望这也能防止出现警报(不确定是否正确)。我已将以下代码添加到 squarespace 的 "code injection" 部分,这似乎工作正常。 (已编辑,我已按照建议删除了代码)
我正在使用 Brine 模板。这是 link 网站 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>
这是我要remove/disable的对话框截图。 dialog box pop up screenshot
如果有人能指出我正确的方向或告诉我我做错了什么,那将是一个很好的学徒。
感谢您的帮助。
我检查了你的网站,你的模板似乎没有使用 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” .
您的 "Additional Photos" select 盒子 没有 ID "Additional Photos",而是- 它有一个随机生成的 ID,每次刷新页面时都会重新生成。
所以您的代码无法正常工作的原因是您只是定位了错误的元素:)
var dropdown = document.querySelectorAll('[data-variant-option-name="Additional Photos"]')[0];
由于 select 框的 ID 不是恒定的,我们改为通过 'data-variant-option-name' 属性定位 select 框。我只是通过检查 ChromDev 工具上的 select 框来找出这个常量属性。
dropdown.value = '0';
Y.one('#'+dropdown.id).simulate('change');
要考虑的另一件事是您的模板使用 YUI 来处理 select 框。这意味着我们需要手动触发 'change' 事件,以便 UI 更新。从上面的代码可以看出,第一行是设置 select 框的值,而第二行是告诉 YUI 模拟 'change' 事件,因此 - 更新UI.
希望对您有所帮助!