У меня проблема с изменением содержимого div. В моей форме есть область выбора для регионов. Варианты - Филиппины и Соединенные Штаты. Логика заключается в том, что пользователь выбирает Филиппины. Текстовое поле под selecbox будет автоматически заменено другим div, у которого также есть selectbox. И если пользователь выберет США или нет, он просто отобразит текстовое поле ниже. По умолчанию в поле выбора находится текстовое поле. Вот мой код.
<label style="font-weight: normal">Country</label>
<select style="width: 250px" name="region_country" id="region_country">
<option value="">--Select Country--</option>
<option value="Philippines">Philippines</option>
<option value="United States">United States</option>
</select>
<label style="font-weight: normal">Region</label><br />
<div id="region_selection_text">
<input type="text" size="50" class="form-control" id="region" name="region" />
</div>
<div id="region_selector_selection">
<select class="form-control">
<option></option>
</select>
</div>
В моем jquery у меня есть это.
$("#region_country").on('change',function(){
var region = $("#region_country").val();
if(region == 'Philippines'){
//display selectbox here
} else {
//display textbox here if no selection or if the selection is United States
}
});
Мое решение создает для него функции скрытия и шоу. Или есть способ достичь этого? Как вы видели, есть два divs ниже метки Region. Первый div для текстового поля, а второй - для selectbox.
Вы можете использовать.toggle() как
var $rt = $('#region_selection_text'),
$rs = $('#region_selector_selection');
$("#region_country").on('change', function () {
var isP = this.value == 'Philippines'
$rt.toggle(!isP);
$rs.toggle(isP);
}).change();
Демо: скрипка