سؤال

واني اسعى الى جعل نموذج ديناميكي باستخدام نماذج الربيع. في الأساس، وشكل يحصل على لقب نشاط التعلم وثم هناك زر دون أن يقول، "إضافة واحد أكثر نشاط التعلم". وهذا يجعل من الممكن بالنسبة للمستخدم لإضافة نشاط التعلم أكثر واحد. أريد له أن يكون قادرا على إضافة بقدر ما يحب.

ولم أحاول ذلك من قبل لذلك من الواضح أنني واجهت أخطاء مع الحل الأول فكرت. أنا حقا كان شعور تفعل ما فعلت سوف يولد خطأ ولكن فقط لا تدفع المنزل ما أحاول القيام به، وهنا رمز:

<script language="javascript">
 fields = 0;
 function addInput() {
      document.getElementById('text').innerHTML += "<form:input path='activity[fields++].activity'/><br />";
 }

<div id="text">
  <form:form commandName="course">
   Learning Activity 1 
   <form:input path="activity[0].activity"/>
    <input type="button" value="add activity" onclick="addInput()"/>
    <br/><br/>
   <input type="submit"/>
  </form:form>  
  <br/><br/>
 </div>
هل كانت مفيدة؟

المحلول

ولا يمكنك استخدام <form:input> داخل جافا سكريبت لهو علامة التخطيط الاستراتيجي المشترك الذي يعمل على الخادم.

ولكن، لا يوجد شيء سحري حول كيفية مساهمة HTML يحصل منضم إلى حقل في كائن الأمر الربيع. أنها تقوم فقط على الاسم. وذلك في جافا سكريبت الخاصة، إضافة جديدة <input type="text" name="activity[1].activity"> (على سبيل المثال - من الواضح عليك زيادة مؤشر)

وثمة خيار آخر لقد استعملت للضوابط أكثر تعقيدا هو للاستيلاء على HTML من الرقابة القائمة (التي تم إنشاؤها باستخدام نموذج الربيع: العلامة المدخلات) واستنساخ ذلك، ليحل محل الأرقام القياسية مع عدد متزايد. هذا يحصل أسهل كثيرا إذا كنت تستخدم مسج.

وتحرير لADD: قضية واحدة التي قد تسبب لك المشاكل: كنت إلحاق مربع الإدخال الجديد إلى نهاية شعبة الخارجي الخاص بك ( "النص")، وهو ما يعني انها ليست داخل العلامات النموذج. هذا لن ينجح.

نصائح أخرى

هل <form:input> علامة JSP؟ إذا كان الأمر كذلك، ثم من جانب العميل جافا سكريبت لإضافة العقد <form:input> إلى DOM لن يكون لها أي تأثير - منذ من جانب الخادم محرك JSP لا تفسير تلك

وجافا سكريبت يحتاج إلى العمل مع HTML DOM الخام و، مثل إضافة عنصر <input>.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top