私がここで達成しようとしているのは、次の3つのオプションを持つ選択入力があります:セール、レンタル、募集。どのオプションが選択されているかに応じて、3つの選択入力があります。それで、私がSaleを選択したら、property sale
選択入力を表示し、他の2つを非表示にする必要があります。レンタルを選択すると、property rent
選択入力が表示され、他の2つは非表示になります。前の選択オプションに応じて選択入力を無効にする
隠蔽はうまくいますが、私の問題はGETを使用して検索を依頼すると、無効にされていない2つの隠し選択入力のデータが渡されます。下のコードに示すように、選択に応じてそれらを無効にしようとしましたが、機能しませんでした。どんな助け?ここで
は私のコードです:
<script type="text/javascript">
$('#type').on('change',function(){
if($(this).val() === "sale"){
$("#propertyrent").hide();
$("#propertywanted").hide();
$("#pricetype").show();
$("#propertysale").show();
document.getElementById("propertyrent").disabled=true;
document.getElementById("propertywanted").disabled=true;
}
else if($(this).val() === "rent"){
$("#pricetype").hide();
$("#propertyrent").show();
$("#propertywanted").hide();
$("#propertysale").hide();
document.getElementById('propertysale').disabled=true;
document.getElementById('propertywanted').disabled=true;
}
else if($(this).val() === "wanted"){
$("#pricetype").hide();
$("#propertyrent").hide();
$("#propertywanted").show();
$("#propertysale").hide();
document.getElementById('propertyrent').disabled=true;
document.getElementById('propertysale').disabled=true;
}
});
</script>
<label class="col-sm-3 control-label">Type</label>
<select name="type" id="type">
<option value="sale">Sale</option>
<option value="rent">Rent</option>
<option value="wanted">Wanted</option>
</select>
<div id="propertysale">
<label class="col-sm-3 control-label">Property</label>
<select name="propertysale" id="propertysale" class="form-control col-sm-12">
<option value="all">Any</option>
<option value="houses">Houses</option>
<option value="apartments">Apartments</option>
<option value="land">Land</option>
<option value="buildings">Buildings</option>
<option value="wfsc" >Warehouse/Factory/Store/Chalet</option>
</select>
</div>
<div id="propertyrent" style="display:none;">
<label class="col-sm-3 control-label">Property</label>
<select name="propertyrent" id="propertyrent" class="form-control col-sm-12">
<option value="all">Any</option>
<option value="houses">Houses</option>
<option value="apartments">Apartments/Flats</option>
<option value="wfsc" >Warehouse/Factory/Store/Chalet</option>
</select>
</div>
<div id="propertywanted" style="display:none;">
<label class="col-sm-3 control-label">Property</label>
<select name="propertywanted" id="propertywanted" class="form-control col-sm-12">
<option value="all">Any</option>
<option value="houses">Houses</option>
<option value="apartments">Apartments</option>
<option value="land">Land</option>
<option value="buildings">Buildings</option>
<option value="wfsc" >Warehouse/Factory/Store/Chalet</option>
</select>
あなたはdisplay = noneを試しましたか? document.getElementById( "myDIV")。style.display = "none"; –
@TobiObeckそれはそれらを隠すことではなく、無効にすることなく隠されてもフォームにデータを送信します。私はそれを防止したい。 – Ali