別の属性フィールドからの選択に基づいて属性フィールドを非表示にするのに問題があります。
これを簡単に行う方法が不足しているため、フッター ブロックに 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;
}
明確な両方は、スライドアップが機能しないことに関するいくつかの Google の調査結果からの提案でした。それが何をするのかはわかりませんが、とにかく違いはありませんでした。少なくとも非表示はページの読み込みで機能します。
このビットは、フッター ブロックにもある 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 に変更されると、属性フィールド 5 が値 15 に変更されます。これは、1 つの製品ではなく 1 ダースを購入する場合に、値 13 を選択できるように属性フィールド 4 を示します。お客様に発送するのではなく、引き取ります。
これはすべて正常に機能し、フィールド 5 で値 15 を選択すると、フィールド 4 がポップアップ表示され、その中の任意のものを選択できますが、フィールド 5 で値 14 を選択すると、フィールド 4 は非表示に戻りません。
基本的にこれで達成したいのは、送信または配送用に 2 つのクローン フィールドを作成することです。そのうちの 1 つは、単一の製品ではなくダースを選択するための割引があります。これは、フォーム 4 を値 13 に設定して 1 つの製品を注文することを防止するためであり、店舗に来て自分で 12 個の製品を購入し、それを発送しないことを選択した場合と同じ割引が適用されます。がすべてです。これが意味をなすことを願っています。
なぜこれが本来のように機能しないのか、誰かが光を当てることができますか? なぜ隠れ家に戻らないのですか?ここで何か不足していますか?私は 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