动态添加到表单的问题(尝试使用onChange和appendTo)

时间:2011-03-28 14:20:16

标签: javascript jquery forms javascript-events dynamic-forms

所以我希望我的表单以不同的方式扩展,具体取决于下拉框的选择。

我的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

2 个答案:

答案 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;
    }
};

jsfiddleparseInt()

的代码示例