设置默认选项并禁用警报

问题描述 投票:0回答:1

我已经尝试了一段时间以使其正常工作。我对jquery或javascript没有太多经验。我想设置一个默认选项,该选项在按下按钮时从下拉选项中选择。我希望这也可以防止出现警报(不确定是否正确)。我已将以下代码添加到Squarespace的“代码注入”部分,这似乎工作正常。 (已编辑,我已按照建议删除了代码)

我正在使用Brine模板。这是网站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>

这是我要删除/禁用的对话框的屏幕截图。dialog box pop up screenshot

如果有人可以将我指向正确的方向或告诉我我做错了,那将是徒劳的。

谢谢您的帮助。

javascript jquery squarespace
1个回答
0
投票

[我检查了您的网站,似乎您的模板未使用jQuery,并且我没有在此简单功能中包含jQuery,而是在普通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,其值为“ 0”。

您的“其他照片”选择框没有ID为“其他照片”,而不是-它的随机生成的ID会在每次刷新页面时重新生成。

所以您的代码无法正常工作的原因是,您只是针对错误的元素:)


var dropdown = document.querySelectorAll('[data-variant-option-name="Additional Photos"]')[0];

由于选择框的ID不是恒定的,我们改为通过'data-variant-option-name'属性来定位选择框。我仅通过检查ChromDev工具上的选择框就知道了此常量属性。


dropdown.value = '0';
Y.one('#'+dropdown.id).simulate('change');

要考虑的另一件事是您的模板正在使用YUI处理选择框。这意味着我们需要手动触发“ change”事件以更新UI。从上面的代码中可以看到,第一行设置选择框的值,而第二行告诉YUI模拟'change'事件,从而-更新UI。

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.