根据输入框中的数字选择选择框选项
Choose selectbox option based on a number in an inputbox
我写了下面的函数来添加新的 selectbox onchange 我的 selectbox。
这部分代码对我来说效果很好。
我的问题是如何 select 我的主 select 框的选项基于带有类名 childcount 的输入框的值?
我的意思是如果它是 2 选择一个值为 2 的选项?
有办法吗?
这是我的片段:
$(function() {
$(".button-click-child a").on("click", function() {
var button = $(this);
var oldVal = parseInt(button.closest("ul").prev().val());
var newVal = (button.text() == "+") ? oldVal + 1 : (oldVal > 0) ? oldVal - 1 : 0;
button.closest("ul").prev().val(newVal);
button.closest("ul").next().val(newVal+',');
$(".cat_textbox").each(function() {
var cat = $(this).prev('span').text();
total_value += cat + ": " + $(this).val() + "، ";
});
if (oldVal < newVal) {
$('.childDropdowns').append(createChildDropdown(newVal));
} else if (oldVal > newVal) {
destroyChildDropdown($('.childDropdowns'), newVal);
}
})
})
function childAge(a){
$(a).each(function(){
age=$(a).val();
$(a).closest(".countRoom").find(".selectAge").empty();
for(var j=1;j<=age;j++){
$(a).closest(".countRoom").css("width","100%").find(".selectAge").append('<div class="age"><label>Age of Child' + j + '</label><select name="childage" class="childage form-control"><option value="1">Up to 1 years</option><option value="2">1 to 2 years</option></select></div>');
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="countRoom">
children
<select onChange="childAge(this)">
<option value="0"> 0 </option>
<option value="1"> 1 </option>
<option value="2"> 2 </option>
</select>
<input type="text" class="childcount" value="2" readonly>
<div class="selectAge"></div>
</div>
试试这个 select 一个选项:
$('select option[value="'+$('.childcount').val()+'"]').attr('selected','selected');
您可以添加$(document).ready
块,并将select
的值设置为input
的值。请注意,您必须在之后执行 change()
效果,这样您的代码才能正常工作。
$(document).ready(function(){
$('.countRoom').find('select').val($('.childcount').val());
$('.countRoom').find('select').change()
})
$(function() {
$(".button-click-child a").on("click", function() {
var button = $(this);
var oldVal = parseInt(button.closest("ul").prev().val());
var newVal = (button.text() == "+") ? oldVal + 1 : (oldVal > 0) ? oldVal - 1 : 0;
button.closest("ul").prev().val(newVal);
button.closest("ul").next().val(newVal+',');
$(".cat_textbox").each(function() {
var cat = $(this).prev('span').text();
total_value += cat + ": " + $(this).val() + "، ";
});
if (oldVal < newVal) {
$('.childDropdowns').append(createChildDropdown(newVal));
} else if (oldVal > newVal) {
destroyChildDropdown($('.childDropdowns'), newVal);
}
})
})
function childAge(a){
$(a).each(function(){
age=$(a).val();
$(a).closest(".countRoom").find(".selectAge").empty();
for(var j=1;j<=age;j++){
$(a).closest(".countRoom").css("width","100%").find(".selectAge").append('<div class="age"><label>Age of Child' + j + '</label><select name="childage" class="childage form-control"><option value="1">Up to 1 years</option><option value="2">1 to 2 years</option></select></div>');
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="countRoom">
children
<select onChange="childAge(this)">
<option value="0"> 0 </option>
<option value="1"> 1 </option>
<option value="2"> 2 </option>
</select>
<input type="text" class="childcount" value="2" readonly>
<div class="selectAge"></div>
</div>
我写了下面的函数来添加新的 selectbox onchange 我的 selectbox。
这部分代码对我来说效果很好。
我的问题是如何 select 我的主 select 框的选项基于带有类名 childcount 的输入框的值?
我的意思是如果它是 2 选择一个值为 2 的选项? 有办法吗? 这是我的片段:
$(function() {
$(".button-click-child a").on("click", function() {
var button = $(this);
var oldVal = parseInt(button.closest("ul").prev().val());
var newVal = (button.text() == "+") ? oldVal + 1 : (oldVal > 0) ? oldVal - 1 : 0;
button.closest("ul").prev().val(newVal);
button.closest("ul").next().val(newVal+',');
$(".cat_textbox").each(function() {
var cat = $(this).prev('span').text();
total_value += cat + ": " + $(this).val() + "، ";
});
if (oldVal < newVal) {
$('.childDropdowns').append(createChildDropdown(newVal));
} else if (oldVal > newVal) {
destroyChildDropdown($('.childDropdowns'), newVal);
}
})
})
function childAge(a){
$(a).each(function(){
age=$(a).val();
$(a).closest(".countRoom").find(".selectAge").empty();
for(var j=1;j<=age;j++){
$(a).closest(".countRoom").css("width","100%").find(".selectAge").append('<div class="age"><label>Age of Child' + j + '</label><select name="childage" class="childage form-control"><option value="1">Up to 1 years</option><option value="2">1 to 2 years</option></select></div>');
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="countRoom">
children
<select onChange="childAge(this)">
<option value="0"> 0 </option>
<option value="1"> 1 </option>
<option value="2"> 2 </option>
</select>
<input type="text" class="childcount" value="2" readonly>
<div class="selectAge"></div>
</div>
试试这个 select 一个选项:
$('select option[value="'+$('.childcount').val()+'"]').attr('selected','selected');
您可以添加$(document).ready
块,并将select
的值设置为input
的值。请注意,您必须在之后执行 change()
效果,这样您的代码才能正常工作。
$(document).ready(function(){
$('.countRoom').find('select').val($('.childcount').val());
$('.countRoom').find('select').change()
})
$(function() {
$(".button-click-child a").on("click", function() {
var button = $(this);
var oldVal = parseInt(button.closest("ul").prev().val());
var newVal = (button.text() == "+") ? oldVal + 1 : (oldVal > 0) ? oldVal - 1 : 0;
button.closest("ul").prev().val(newVal);
button.closest("ul").next().val(newVal+',');
$(".cat_textbox").each(function() {
var cat = $(this).prev('span').text();
total_value += cat + ": " + $(this).val() + "، ";
});
if (oldVal < newVal) {
$('.childDropdowns').append(createChildDropdown(newVal));
} else if (oldVal > newVal) {
destroyChildDropdown($('.childDropdowns'), newVal);
}
})
})
function childAge(a){
$(a).each(function(){
age=$(a).val();
$(a).closest(".countRoom").find(".selectAge").empty();
for(var j=1;j<=age;j++){
$(a).closest(".countRoom").css("width","100%").find(".selectAge").append('<div class="age"><label>Age of Child' + j + '</label><select name="childage" class="childage form-control"><option value="1">Up to 1 years</option><option value="2">1 to 2 years</option></select></div>');
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="countRoom">
children
<select onChange="childAge(this)">
<option value="0"> 0 </option>
<option value="1"> 1 </option>
<option value="2"> 2 </option>
</select>
<input type="text" class="childcount" value="2" readonly>
<div class="selectAge"></div>
</div>