【发布时间】:2013-07-20 16:26:03
【问题描述】:
我在隐藏基于从另一个属性字段中选择的属性字段时遇到问题。
由于缺乏这样做更容易,我想在我的页脚块中添加 jQuery 代码。
我会尽量解释当前的情况。
我有一个当前正在生成的选择字段,如下所示:
<select id="edit-attributes-4" class="form-select ajax-processed" name="attributes[4]">
<option selected="selected" value="12">
Verzenden, €15.44
</option><option value="13">
Ophalen, €8.03
</option></select>
还有这个:
<select id="edit-attributes-5" class="form-select ajax-processed" name="attributes[5]">
<option selected="selected" value="14">
1 Fles, €15.44
</option><option value="15">
1 Doos, €92.64
</option></select>
我希望在页面加载时隐藏字段 edit-attribute-4,因此我将其添加到 CSS 代码中,该代码也在同一个页脚块中:
#edit-attributes-4 {
display:none;
clear: both;
}
很明显,两者都是来自一些谷歌发现的关于滑动不起作用的建议,我不确定它的作用,但无论如何它没有任何区别,至少隐藏在页面加载时确实起作用。
这一点是 jQuery 代码,也在页脚块中:
$(document).ready(function(){
$("#edit-attributes-5").change(function(){
if ($(#edit-attributes-5).val() == "15" ) {
$("#edit-attributes-4").slideDown("fast")
} else {
$("#edit-attributes-4").slideUp("fast")
}
});
});
基本上会发生什么,并且工作得很好,每当属性字段 5 更改为值 15,即购买 1 打而不是 1 个单一产品时,它显示属性字段 4 能够选择值 13为取货而不是运送给客户提供折扣。
这一切都像它应该的那样工作,每当我在字段 5 中选择值 15 时,字段 4 就会弹出,我可以在其中选择任何内容,但是,当我在字段 5 中选择值 14 时,字段 4 不会返回躲起来。
基本上我想要实现的是有 2 个用于发送或运输的克隆字段,其中 1 个具有折扣以选择一打而不是单个产品。这是为了防止人们订购 1 件单品,同时将表格 4 设为 13 并获得相同的折扣,就好像他们选择来商店自己买一打而不是将其运送给他们一样,这就是折扣是所有关于。我希望这有任何意义。
任何人都可以解释为什么这不能正常工作吗?为什么它不再躲藏起来?我在这里错过了什么吗?我不是很喜欢 jQuery,所以它可能只是很明显的东西。如果有更简单的选择,我愿意接受建议。
更新: http://jsfiddle.net/zhmSS/ 小提琴似乎很有魅力.. 但是在我的产品页面上它一直失败,即使
if ($(#edit-attributes-5).val() == "15" ) {
改为:
if ($(this).val() == "15" ) {
一定有什么东西把它弄坏了? 我曾尝试在 Drupal 上使用 jQuery update 并选择 jQuery v1.5、v1.7 和 v1.8,但它们都没有区别。
有问题的页面: http://italvin.arclyse.net/?q=producten&w=Rode%20Wijn&s=All&wh=All&d=All
【问题讨论】:
-
这是一个拼写错误
if ($(#edit-attributes-5),因为它应该是if ($('#edit-attributes-5')。您也可以将其替换为$(this).val()。 -
如果你发布一个 jsFiddle 演示也会有所帮助。
-
嗨奥马尔,我忘了提到我都试过了,它现在的样子让它也滑下来了,它以前也是“这个”,但因为它没有用,我尝试了其他方法.有趣的是,当我在小提琴中尝试这些代码并将 if ($(#edit-attributes-5) 更改为此时,它就像一个魅力,但是,在它需要工作的页面上却没有。
-
@Shivam : jsfiddle.net/zhmSS 似乎工作得很好,但在我的产品页面上却不行:italvin.arclyse.net/…
-
说实话,很难理解您要完成的工作。您的问题是“SlideDown 工作,SlideUp 拒绝”,您的目标是让 slideUp 工作吗?除非样式不同,否则 SlideUp 无法与选择元素一起正常工作。我可以建议使用fadeIn() 和fadeOut() 吗? jsFiddle 更新:jsfiddle.net/zhmSS/1