所以我希望我的表单以不同的方式扩展,具体取决于下拉框的选择。
我的javascript正在运行,以便在改变我的选择时会执行某些操作。但我正在尝试使用之前使用过的appendTo()方法;用于添加单个输入,用于实现div和一些输入。它没有用,因此是帖子;)
所以我希望你们可以启发我一个更好的方法吗?
这是我目前的代码(由Mark提供):
var selectmenu = document.getElementById("type");
selectmenu.onchange = function() {
var chosenoption = parseInt(this.options[this.selectedIndex].value);
switch (chosenoption) {
case 1:
$('<input type="text" value="1"/>').appendTo('#temp');
break;
case 2:
$('<input type="text" value="2"/>').appendTo('#temp');
break;
case 3:
$('<input type="text" value="3"/>').appendTo('#temp');
break;
}
};
注意:自答案后更新。
此处构建于jsfiddle
目前没有任何作用。
请帮帮忙? :d
答案 0 :(得分:0)
我认为你想要的价值是字符串而不是数字
试试这个
$(document).ready(function(){
$('#type').change(function() {
if( $(this).val() != "nothing" ){
switch ($(this).val()) {
case "1":
$('<input type="text" value="item 1" />').appendTo('#temp');
break;
case "2":
$('<input type="text" value="item 2" />').appendTo('#temp');
break;
case "3":
$('<input type="text" value="item 3" />').appendTo('#temp');
break;
}
}else{
alert($(this).val());
}
});
})
答案 1 :(得分:0)
chosenoption.value
实际上是string
。
您需要致电parseInt(chosenoption.value)
并开启case 1: case 2: case:3
或将您的开关更改为case "1": case "2": case "3":
var selectmenu = document.getElementById("type");
selectmenu.onchange = function() {
var chosenoption = parseInt(this.options[this.selectedIndex].value);
switch (chosenoption) {
case 1:
$('<input type="text" value="1"/>').appendTo('#temp');
break;
case 2:
$('<input type="text" value="2"/>').appendTo('#temp');
break;
case 3:
$('<input type="text" value="3"/>').appendTo('#temp');
break;
}
};
jsfiddle上parseInt()