2016-05-20 10 views
0

私はHTMLとJS(以下)の両方を含む.handlebarsファイルを持っています。これは、ユーザーが「新しいフォームフィールド」ボタンをクリックすることによって拡張できる単純なフォームです。そのボタンは単に新しいテキストフィールドを追加します。ユーザーは、フォームを送信する前に、必要な数のフォームフィールドを作成できます。Node/ExpressのJSをクライアントからサーバーに移動するにはどうすればいいですか?

私は、HTMLからJavascriptを取り出して、サーバ側でのみ保持する最良の方法は何か疑問に思っていました。私はapp.jsファイルのルートハンドラの下に置くか、それともapp.jsファイルにエクスポートされるモジュールに置くのでしょうか?それとも私はグーグルでなければならない何か他にありますか?前もって感謝します。

HTML:

<form method="POST" action="newForm">  
    <div id="container"> 
     <p>Form field 1.)</p> 
      <span><p><input type="text" name="question1"><br></p>  
    </div>  
    <button type="button" id="newF">+ New Form Field</button><br><br>  
    <button type="submit">Submit</button>  
</form> 

Javascriptを:codepenへ

var newFbtn = $("#newF"); 
var fieldCount = 1; 

newFbtn.click(function() { 
    fieldCount++; 
    $("#container").append(

     '<p>Form field ' + fieldCount + '.)</p>' + 
     '<span><p><input type="text">' 
) 

}); 

リンク:あなたが最初の場所でそれを移動しなければならないと思いますなぜhttp://codepen.io/Jake_Ratliff/pen/KzjaQz

+1

あなたは何を求めていますか?どのようにあなたのhtmlからそれを抽出するが、それはブラウザに配信されたときに束ねて、またはそれを抽出し、サーバー側から実行する方法? – theaccordance

+0

ああ、申し訳ありません。私はそれを束ねる方法を尋ねています。おそらく、クライアントを維持することが最善です。これは、DOMを変更するだけで(以下のユーザーのように)、サーバーに置くとクライアントで遅くなる可能性があります。 –

+1

node.jsを使って簡単なWebサーバーを構築する際のチュートリアルを見つけるには、クライアント側のjavascriptファイル、画像、CSSなどの静的資産を提供するためにブラウザに公開されるフォルダパスを指定する方法を教えてください。など – theaccordance

答えて

3

あなたのJavaScriptがDOM(HTMLページ)を変更するだけの場合は、それをサーバー側に置くことは意味がありません。それが複雑な計算やデータベースから何かを取得していたなら、それは理にかなっていますが、フラットHTMLを追加することはクライアント側に保たれるべきです。

+0

実際、私はそれを動かす正当な理由はありません。ありがとうございました! –

関連する問題