選択時にul liを使用して作成したドロップダウンを作成しました.2番目の選択バーの値が変更されるようになりました。問題は、2番目の選択バーの値が変更され、バーは私のために働いていない誰もこの懸念で私を助けることができます。ドロップダウン選択で値が変更されない
ユーザーが最初のオプションで選択を行わずに寝室を選択した場合、完璧に機能しているとしますが、ユーザーがコンドハウスまたはオフィスから選択を変更しようとしたときに2番目の選択バーの値が変更され、値が変更されると、ユーザーは2番目のフィールドで選択を行うことができません。意味を理解しています。あなたが見て選ぶことができれば説明がうまくいかず、あなたは私の質問を理解できます。
$(document).ready(function() {
$('.mc-select').on('click', function() {
\t $('.mc-options', this).toggle();
});
});
$('.htype_opt').on('click', function() {
\t var mc_val = $(this).attr('data-type');
\t $('#htype').text(mc_val);
\t $('.htype').val(mc_val);
\t
\t if(mc_val == 'Condo') {
\t \t $('.dt_bed_ch').text('Studio');
\t \t var new_ul_data = '<li class="mc-option bedroom_opt" data-bedroom="0">Studio</li><li class="mc-option bedroom_opt" data-bedroom="1">1 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="2">2 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="3">3 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="4">4 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="5">5 Bedroom</li>';
\t \t $('.dt_bed').html(new_ul_data);
\t }
\t
\t if(mc_val == 'House') {
\t \t $('.dt_bed_ch').text('1 Bedroom');
\t \t var new_ul_data = '<li class="mc-option bedroom_opt" data-bedroom="1">1 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="2">2 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="3">3 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="4">4 Bedroom</li><li class="mc-option bedroom_opt" data-bedroom="5">5 Bedroom</li>';
\t \t $('.dt_bed').html(new_ul_data);
\t }
\t
\t if(mc_val == 'Office') {
\t \t $('.dt_bed_ch').text('Open space');
\t \t var new_ul_data = '<li class="mc-option bedroom_opt" data-bedroom="0">Open space</li><li class="mc-option bedroom_opt" data-bedroom="1">1 Room</li><li class="mc-option bedroom_opt" data-bedroom="2">2 Rooms</li><li class="mc-option bedroom_opt" data-bedroom="3">3 Rooms</li><li class="mc-option bedroom_opt" data-bedroom="4">4 Rooms</li><li class="mc-option bedroom_opt" data-bedroom="5">5 Rooms</li>';
\t \t $('.dt_bed').html(new_ul_data);
\t }
\t
\t var type \t = mc_val;
\t var city \t = $('.city').val();
\t var bedroom = $('.bedroom').val();
\t var bathroom = $('.bathroom').val();
\t var area \t = $('.area').val();
\t var pkg \t = $('.pkg').val();
\t
\t $.ajax({
\t \t type \t : "POST",
\t \t url \t : "http://bluevisionarydesigns.com/demo/unick/home/get_data",
\t \t dataType : "text",
\t \t data \t : {city: city, type : mc_val, bedroom : bedroom, bathroom : bathroom, area : area, pkg : pkg},
\t \t success \t : function(data) {
\t \t \t $('.estimate-amount').text(data);
\t \t }
\t });
});
$('.bedroom_opt').on('click', function() {
\t var mc_val = $(this).attr('data-bedroom');
\t var mc_val2 = $(this).text();
\t $('#bedroom').text(mc_val2);
\t $('.bedroom').val(mc_val);
\t
\t alert(mc_val);
\t var type \t = $('.htype').val();
\t var city \t = $('.city').val();
\t var bedroom = mc_val;
\t var bathroom = $('.bathroom').val();
\t var area \t = $('.area').val();
\t var pkg \t = $('.pkg').val();
\t
\t $.ajax({
\t \t type \t : "POST",
\t \t url \t : "http://bluevisionarydesigns.com/demo/unick/home/get_data",
\t \t dataType : "text",
\t \t data \t : {city: city, type : type, bedroom : mc_val, bathroom : bathroom, area : area, pkg : pkg},
\t \t success \t : function(data) {
\t \t \t $('.estimate-amount').text(data);
\t \t }
\t });
});
.search-bar form .input-group .mc-select {
position: relative;
}
.mc-select {
min-width: 100px;
float:left;
border: 1px solid #dce1e5;
cursor: pointer;
position: relative;
font-size: 16px;
background-color:#fff;
}
.mc-select .mc-value {
height: 62px;
line-height: 62px;
padding: 0 15px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mc-select .mc-options {
height: auto;
position: absolute;
width: calc(100% + 2px);
-webkit-transition: height 350ms 0s cubic-bezier(.165,.84,.44,1);
-moz-transition: height 350ms 0s cubic-bezier(.165,.84,.44,1);
-ms-transition: height 350ms 0s cubic-bezier(.165,.84,.44,1);
-o-transition: height 350ms 0s cubic-bezier(.165,.84,.44,1);
transition: height 350ms 0s cubic-bezier(.165,.84,.44,1);
-webkit-transform: translateX(-1px);
-moz-transform: translateX(-1px);
-ms-transform: translateX(-1px);
-o-transform: translateX(-1px);
transform: translateX(-1px);
background-color: rgba(255, 255, 255, 0.8);
border-left: 0 solid transparent;
border-right: 0 solid transparent;
border-bottom: 0 solid transparent;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
display:none;
z-index: 9;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="search-bar">
<form method="POST">
\t \t \t <!-- =========================================================== -->
\t \t \t <div class="input-group ">
\t \t \t \t <div class="mc-select">
\t \t \t \t \t <div class="mc-value" id="htype">Condo</div>
\t \t \t \t \t <ul class="mc-options">
\t \t \t \t \t \t <li class="mc-option htype_opt" data-type="Condo">Condo</li>
\t \t \t \t \t \t <li class="mc-option htype_opt" data-type="House">House</li>
\t \t \t \t \t \t <li class="mc-option htype_opt" data-type="Office">Office</li>
\t \t \t \t \t </ul>
\t \t \t \t </div>
\t \t \t \t <input type="hidden" name="htype" class="htype" value="Condo" />
\t \t \t </div> <!-- End of input Group -->
\t \t \t
\t \t \t <!-- =========================================================== -->
\t \t \t <div class="input-group ">
\t \t \t \t <div class="mc-select">
\t \t \t \t \t <div class="mc-value dt_bed_ch" id="bedroom">Studio</div>
\t \t \t \t \t <ul class="mc-options dt_bed">
\t \t \t \t \t \t <li class="mc-option bedroom_opt" data-bedroom="0">Studio</li>
\t \t \t \t \t \t <li class="mc-option bedroom_opt" data-bedroom="1">1 Bedroom</li>
\t \t \t \t \t \t <li class="mc-option bedroom_opt" data-bedroom="2">2 Bedroom</li>
\t \t \t \t \t \t <li class="mc-option bedroom_opt" data-bedroom="3">3 Bedroom</li>
\t \t \t \t \t \t <li class="mc-option bedroom_opt" data-bedroom="4">4 Bedroom</li>
\t \t \t \t \t \t <li class="mc-option bedroom_opt" data-bedroom="5">5 Bedroom</li>
\t \t \t \t \t </ul>
\t \t \t \t </div>
\t \t \t \t <input type="hidden" name="bedroom" class="bedroom" value="0" />
\t \t \t </div> <!-- End of input Group -->
</form>
</div>
great man thanksありがとうございます。 –
これは、 'click'ハンドラがイベントリスナーとして'に表示されないため、デバッグがより困難になります。bedroom_opt'要素です。 – ryanpcmcquen
@ryanpcmcquen興味深い考え方、それが本当なら、私はそれを考えなかった。これはかなり一般的な方法ですが、jQueryによって非常によく文書化されています。もちろん、jQueryを選択しても可能です。それを使用して人々を置くように見えません! – ADyson