2011-12-20 5 views
0

私の質問は、私たちの営業担当者が顧客の連絡先に電話番号を追加できるようにすることです。jqueryもっと多くのフォームアイテムを追加

私たちはこのようなフォームを持っています。そう基本的に私は、彼らが1つの電話番号を完了すると、それはもはや、彼らは追加するかどうかを尋ね、その下に新しい入力ボックスを追加し、離すことで何をしたい

<form> 
<div id="numbers"> 
<input id="no1" value="" class="phone" type="numbers"/> 
</div> 
</form> 

(私は私達の接触領域から一部を示す注意してください) 。

私はそれらを保存するための最良の方法を提案する必要がありますか? http://jsfiddle.net/cAMAe/2/

$('#numbers input').last().keypress(function() { 
    if($('#numbers input').last().val().length > 5) 
    { 
    $(this).clone('false').appendTo("#numbers"); 
    $('#numbers input').last().val(''); 
    } 
}); 

だけのクラスにIDを変更 -

私の考えは、以下の

025555555,0311555445,044585522 

答えて

1
  1. 内folowing。名前のついた入力だけが提出されます。 もちろん、AJAXを介して提出し、投稿データを自分で作成している場合を除きます。
  2. コンマ区切りの値としてデータを保存しないでください。電話番号のための別のテーブルを保持し、人とその電話番号の間に1対多の関係を使用してください。正規化されたデータは(ほとんど)常に正しい方法です。
  3. 本当に無制限の電話番号が必要ですか?または、いくつかの小さな、固定数は十分ですか?言って、電話、代替電話、セル? 3つの場合、3つのテキストボックスを作成し、後者をオプションにするのはどうですか?
  4. あなたは、次のようなものを使用することができます:

例:私が何を考えて

$(function() { 
    $(document).on('blur','[name="phone"]', function() { 
     var $phones = $('[name="phone"]'), 
      empty = $phones.filter(function() { return !$(this).val(); }).length; 
     if (empty == 0) { // don't add a new one unless they all have values 
      $phones.filter(':last').after('<input type="text" name="phone" class="phone" type="numbers" />'); 
     } 
    }); 
}); 
+0

'$ phones.find( ':last')'の行に代わりに 'filter'を使いたいとします。なぜあなたは=)知っていると確信しています。 – mrtsherman

+0

@mrtsherman "why =)"私は – aWebDeveloper

+0

@WebDeveloperを知っていません。 'find'は子孫を検索し、' filter'は現在のリストをフィルタリングするためです。 '$ phones'は子を持たない入力のリストです。 – mrtsherman

0

このデモを試してみてくださいと一緒にそれらを結合することでした。何らかの理由であなたはidが行う削除できない場合は、そのフィールドに名前を必要とするか、フォームがポストでそれを提出しない場合はブロック

$input = $('#numbers input').last(); 
$input.clone(false).find("*").attr("id",$input.attr("id")+'111').attr('value','').appendTo("#number"); 
+0

この例では、長い電話番号を入力してください。あなたは多くの入力ボックスを作成します。 – mrtsherman

+0

plzデモを参照 – aWebDeveloper

+0

私はフィドルを見ました。最初の入力ボックスに123456890と入力すると、新しい入力ボックスと空の入力ボックスが半ダースになります。フィドルリンクは正しいですか? – mrtsherman

0

を、このようなものです:

register(1); 
function register(i) 
{ 
    $('#no'+i).blur(function() 
    { 
     if($('#no'+i).val().get().matches(reg)) 
     { 
      generated_id="#no"+++i; 
      $('#numbers').append('<div><input type="text" id='+generated_id+'...></div>') 
      register(i); 
     } 
    }) 
} 
関連する問題