0

現在、ドロップダウン選択の onChange に応じてフォームに追加を提示するフォームを持っていますが、新しく提示された入力ボックスでも同様のことを行いたいので、ユーザーが数字「4」を入力した場合は onChange() を再度使用します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のメモがあります-最初のドロップダウン選択にのみ取り組んでいます。

ぼろぼろのスタイリングは無視して、今は機能性が欲しいだけです。

助けてください。

よろしく、

4

1 に答える 1

0

jQueryを使用している場合は、まず最初に使用します

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

.onchangeプロパティを直接設定するのではなく、この方法でイベントハンドラーを設定することは、さまざまな理由から一般的に推奨されていません。

ただし、主な問題は、「オプション」入力が作成される前に、このイベントハンドラーをバインドしようとしていることのようです。上記で提案したものを使用し、代わりに「ライブ」を使用すると、「オプション」入力がまだ存在しない場合でも機能します

//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に修正しました

注:ここであなたの「質問」に「答える」つもりはありませんが、少し助けようとしています。あなたの「質問」にはコードの修正が含まれているように思われます。つまり、さまざまな質問に対する多くの回答が本当に必要なのです。これはそれらの答えの1つにすぎません。

于 2011-03-29T11:34:18.633 に答える