Проблемы с динамическим добавлением в форму (при попытке использовать onChange и appendTo) - PullRequest
0 голосов
/ 28 марта 2011

, поэтому я хочу, чтобы моя форма расширялась по-разному, в зависимости от выбора выпадающего списка.

У меня работает мой javascript, так что при изменении моего выбора он будет выполнять что-то.Но я пытаюсь использовать метод appendTo (), как я использовал раньше;для добавления одного входа, чтобы работать для реализации div и нескольких входов.Это не работает, отсюда и пост;)

, поэтому я надеялся, что вы, ребята, могли бы рассказать мне о лучшем методе?

вот мой текущий код (любезно предоставленный Марком):

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 голосов
/ 28 марта 2011

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()

0 голосов
/ 28 марта 2011

Я думаю, что значение, которое вы пытаетесь найти, является строкой, а не числом

попробуйте это

$(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());
        }
    });
})
...