0

我有一个动态生成的表单。当用户对输入进行更改时,更改会显示在屏幕的右半球。我可以直接调用设置为该更改的变量,但是当我遍历所有同级输入以获取当前数据时,它们是默认值。我怎样才能解决这个问题?

jsfiddle:http: //jsfiddle.net/NEEtV/2/

$('#question-data form input').on('change',function(){
    console.log($(this).val());
    var x = $(this).val();
    $('#test-preview').empty();
    $(this).parents('form').find('input').each(function(){
        $('#test-preview').append('<p>' + $(this).val() + '</p>');
    })
});

您将在控制台中看到 $(this).val() 是当前的,但不在屏幕的显示侧。

4

1 回答 1

1

我通过以下修改对其进行了修复

$('#question-form').on('change', '.add-question input, textarea',function() {
    $('#test-preview').children('div').empty();
    var i = 1;
    $('#question-form').find('.add-question').each(function() {
        $('#test-preview').children('div').append('<p>Question ' + i);
        $(this).find('input,textarea').each(function() {
            if($(this).attr('id') == 'description' || $(this).attr('id') == 'points'){
                $('#test-preview').children('div').append($(this).val() + '<br />');
            }
        });
        $('#test-preview').children('div').append('</p>');
        i++;
    });
});

基本上这是我选择 $(this) 值的方式

于 2013-10-14T17:39:54.093 回答