首页 > 解决方案 > 设置默认选项并禁用警报

问题描述

我已经尝试了一段时间来让它工作。我对 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>

这是我要删除/禁用的对话框的屏幕截图。 对话框弹出截图

如果有人可以为我指出正确的方向或告诉我我做错了什么,那将是非常好的学徒。

谢谢您的帮助。

标签: javascriptjquerysquarespace

解决方案


我检查了您的网站,您的模板似乎没有使用 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。

希望这可以帮助 !


推荐阅读