Проблема с динамической формой с использованием jquery - PullRequest
0 голосов
/ 29 марта 2011

В настоящее время у меня есть форма, представляющая дополнения к форме, в зависимости от изменения моего выпадающего списка, однако я хочу, чтобы она теперь также выполняла аналогичные действия для вновь представленного поля ввода, поэтому, снова используя onChange (), если пользователь вводит число «4» говорят, что это представляет 4 новых ввода. (поэтому я хочу цикл) вот что я пытался:

var inputt = document.getElementById("options");
inputt.onchange = function(){
var optionValue = parseInt(this.value);
$('#container').empty();
for (i=0;i<=optionValue;i++)
{
$('<input type="text" value=""/>').appendTo('#container');      
}   
};

вот примечание jsfiddle - я работал только с первым выпадающим списком.

игнорируйте потертый стиль, я просто хочу функциональность прямо сейчас.

помогите пожалуйста.

С уважением,

1 Ответ

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

Если вы используете jQuery, я бы в первую очередь использовал

$("#options").bind("change",function(){
  //your code here
});

вместо того, чтобы устанавливать свойство .onchange напрямую - установка таких обработчиков событий, как правило, не рекомендуется по ряду причин.

Тем не менее, ваша основная проблема заключается в том, что вы пытаетесь связать этот обработчик событий еще до того, как ваш вход «options» будет создан. Если вы используете то, что я предложил выше, но вместо этого используете «живой», он будет работать, даже если ввод «опций» еще не существует

//i've attached keyup in this example, but you could try modifying it to "change"
$("#options").live("keyup",function(e){
  var optionValue = parseInt(e.target.value);
  $('#container').empty();
  //note optionValue, not optionValue
  //note "<" rather than "<=", otherwise if you type "1" you'll get 2 inputs
  for (i=0;i<optionValue;i++) 
  {
    $('<input type="text" value=""/>').appendTo('#container');        
  }    
});

Также имейте в виду, что javascript чувствителен к регистру. Я исправил optionvalue в optionValue

Примечание: я не собираюсь "отвечать" на ваш "вопрос" здесь, но пытаюсь немного помочь. Мне кажется, что ваш «вопрос» связан с исправлением вашего кода, так что это означает, что вам действительно нужно много ответов на множество разных вопросов. Это только один из тех ответов.

...