バージョン選択

フォーラム

メニュー

オンライン状況

68 人のユーザが現在オンラインです。 (57 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 68
もっと...

サイト内検索

質問 > その他 > お知恵を拝借させてまらえないでしょうか(規格select)

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
motorp
投稿日時: 2015/6/20 19:07
対応状況: −−−
常連
登録日: 2013/12/26
居住地:
投稿: 45
お知恵を拝借させてまらえないでしょうか(規格select)
EC-CUBEの質問とズレているかもわかりませんが、
行き詰まったことがあり、もし良いアイデアがあればと思いまして
投稿させていただきました。

規格のセレクトボックスにCSSを適応させたい為
(IEでのoption値 行間を広げたい為)
jQueryブラグイン「Easy Select Box」でCSSを適応できるようにしました。

仕様的には <select><option>をコピーして <div>に置換えて
元のセレクトボックスはdisplay noneとさせるものです。



規格1
<select id="select1" class="select">
<!--{html_options options=$arrClassCat1 selected=$arrForm.classcategory_id1.value}-->
</select>

規格2
<select id="select1" class="select" name="classcategory_id2" style="<!--{$arrErr.classcategory_id2|sfGetErrorColor}-->">
</select>

Js

$('.select').easySelectBox();




これで 見た目はselectボックス風になりますが
そのままでは 選択してもjQueryで表示したセレクトボックスを選択しただけで
実際の値は変わってませんので
規格を選択した時点で Easy Select Boxのオプションを使用して 
選択後に値を更新するようにしました。


Js
// 規格1
$('#select1').easySelectBox({
// select選択後の処理
	onClick: function(data) {
	// 規格1を更新
		$("select[name=classcategory_id1]").change();
	
		}
	});
// 規格2
$('#select2').easySelectBox({
// select選択後の処理
	onClick: function(data) {
	// 規格2を更新
		$("select[name=classcategory_id2]").change();
	
		}
	});


規格が1つの場合は、これで良かったのですが、

規格が2つ ある場合
規格1を選択されないと 規格2には元になるselectにoption値がなく
表示がされません。

規格1
<select>
<option>AAAAA</option>
<option>BBBBB</option>
</select>

規格2 ※規格1が選択されないと optionの値が無い状態
<select>
<option>選択してください</option>
</select>

規格1のAを選択後にoptionが表示されます。
<select>
<option>選択してください</option>
<option>AAAAA-1</option>
<option>AAAAA-2</option>
</select>


そこで 
規格1を選択した場合に 規格2も更新するようにしたのですが


Js

$('#select1').easySelectBox({
// select選択後の処理
	onClick: function(data) {
	// 規格1を更新
		$("select[name=classcategory_id1]").change();
	// 規格2を更新
		$("select[name=classcategory_id2]").change();
			
		}
	});




この場合、元のセレクトボックス(display none)は更新がかかるのですが
jQueryで表示したセレクトボックスの表示が更新されません。

単純に 規格1を選択した後、規格2のjQueryを実行させてしまうと
jQuery側も表示は行うのですが

Js

$('#select1').easySelectBox({
// select選択後の処理
	onClick: function(data) {
	// 規格1を更新
		$("select[name=classcategory_id1]").change();
	// 規格2を更新
		$("select[name=classcategory_id2]").change();
	// 規格2のjQueryを実行
	$('.select').easySelectBox();
			
		}
	});



規格1を選択しなおすと 毎回jQueryでの規格2ボックス表示が実行されますので
規格2ボックスが2つ、3つ…と表示されていく状態になります。

<select>
<option>選択してください</option>
<option>AAAAA-1</option>
<option>AAAAA-2</option>
</select>
<select>
<option>選択してください</option>
<option>AAAAA-1</option>
<option>AAAAA-2</option>
</select>
<select>
<option>選択してください</option>
<option>AAAAA-1</option>
<option>AAAAA-2</option>
</select>

ここで行き詰まってしまったのですが、
規格1を "選択しなおしたとき" はリセットするような
良い方法がないか考えております。


私では難しい状態で
もしアイデアや方法などお持ちの方がおられましたら助かります。

宜しくお願い致します。
motorp
投稿日時: 2015/6/22 0:40
対応状況: 解決済
常連
登録日: 2013/12/26
居住地:
投稿: 45
Re: お知恵を拝借させてまらえないでしょうか(規格select)
自己解決しました。

規格2を実行する前に CSSで規格2表示を消す処理を行うことで
とりあえず対応出来ました。

$("----").css("display","none");

ありがとうございました。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,860名です
総投稿数は109,996件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.