отправка формы с использованием javascript

#javascript

#javascript

Вопрос:

Я пытаюсь отправить форму с помощью javascript. Но всегда выдается ошибка «Невозможно вызвать метод отправки неопределенного» я перепроверил имя в форме, но это не сработало, я написал один образец HTML, чтобы просто проверить, работает ли этот подход, и он работал нормально. Пожалуйста, помогите мне в этом.

мой JSP :

 <div id="Symptoms" style="display:none;">
<html:form id="ashutosh" method="POST" action="symptoms" >
<p></p>
<p>Enter/Choose ailment : 

<html:select id="diselc" name="AuthoringForm" property="disease_name" size="1" onchange="javascript:formsubmit(this.formName);" >
<option selected="selected"> </option>
<option>Malaria</option>
<option>High Fever</option>
<option>Cholera</option>
<option>Diarrhoea</option>
</html:select></p>
<p>Choose ailment classification : 
<html:select id="diselchild" name="AuthoringForm" property="diesclassifiaction" > 
<option>High</option>
<option>Medium</option>
<option>Low</option> 
</html:select> 



<fieldset style="width: 381px; height: 126px; padding: 2">
<legend align="left"></legend>
 Tick off patient context :
<html:radio value="Men" name="AuthoringForm" property="patient_context" disabled="false"/>
Men
<html:radio value="Womwen" name="AuthoringForm" property="patient_context" disabled="false"/>
Women
<p>
<html:radio value="Child" name="AuthoringForm" property="patient_context" disabled="false"/>
Child
<html:radio value="Al" name="AuthoringForm" property="patient_context" disabled="false"/>
All
</fieldset>
<p>Enter Pre Conditions</p>
<p><html:textarea rows="2" name="AuthoringForm" cols="20" property="patient_precondition" ></html:textarea>
<p>Must Have Symptoms : 
May Have Symptoms :</p>
<p><html:textarea rows="2" name="AuthoringForm" cols="20" property="must_have_symptoms"></html:textarea>
<!-- <input type="submit" value="Submit" name="B2">-->
<html:textarea rows="2" name="AuthoringForm" cols="20" property="may_have_symptoms"></html:textarea>
<input type="submit" value="Submit" name="symptomsButton"><input type="reset" value="Reset" onclick="clear_form_elements(this.form);"></p>
</html:form>
</div>
  

мой javascript :

 function formsubmit(value){
alert("i am just above the form submission" value); 
document.forms["ashutosh"].submit();
alert("i am just after the form submission");
}
  

Ответ №1:

Ваша проблема в том, что у вас нет формы с именем ashutosh. У вас есть форма с идентификатором ashutosh, поэтому либо используйте:

 document.getElementById('ashutosh').submit();
  

Или измените свой HTML-код на:

 <form name="ashutosh" method="POST" action="symptoms" >
  

Комментарии:

1. может кто-нибудь сказать мне, почему это не работает с тегом <html:form > ??

2. Я понятия не имею, о чем этот тег. Когда я попробую это, это даже не будет работать на обычной HTML-странице. Это зависит от JSP или что-то в этом роде? Редактировать: по приведенным здесь фрагментам кода я думаю, вы просто неправильно поняли. HTML-теги не используют префикс HTML, как теги JSP.

3. Извините, я мало что знаю об этом. Правильно ли отображается форма при использовании этой библиотеки?

Ответ №2:

Это должно быть что-то вроде этого:

document.ashutosh.submit();

Комментарии:

1. Полагаться на браузер, предоставляющий глобальные переменные, так сложно … 🙂