У меня есть простой виджет диалогового окна, который я использую, чтобы отправить некоторые значения на сервер и добавить что-то в неупорядоченный список, который отображается на странице. например, name = matrixA a11 = 1 a12 = 2 a21 = 4 a22 = 1, поэтому эти данные передаются на сервер, а атрибут name должен быть добавлен в список.
После нажатия пользователем submit вызывается процедура Validate(), которая проверяет записи, добавляет запись имени в неупорядоченный список и отправляет форму.
Однако после отправки формы страница перезагружается, а append теряется. Есть ли способ избежать этого? Я знаю, что append работал на долю секунды, которую я действительно могу увидеть, но затем перезагружается страница, и мы возвращаемся к началу.
@EDIT: Это часть моего кода. Весь код становится слишком большим, поэтому ознакомьтесь с этим -
<script>
$('#form1').submit(function(event){
event.preventDefault();
//Validate is a function which returns a bool if validation proceeds correctly
var isCorrect = Validate(this);
if(isCorrect){
//if validated correctly then submit, close widget, add name of matrix to a list
this.submit();
$('#dialog').dialog('close'); //the form sits inside a dialog widget
$('#selectable').append("<li class='ui-widget-content'>name</li>");
}
});
</script>
<form name='form1' id='form1' method='get'>
<fieldset>
<label for="Name">Name</label>
<input type='text' name='nameofmatrix' id='Name' class='whitepanes'><br>
<label for="a11">a11</label>
<input type="text" name='a11' id='a11' class='whitepanes number-field'><br>
<label for="a22">a22</label>
<input type="text" name='a22' id='a22' class='whitepanes number-field'><br>
<label for="a12">a12</label>
<input type="text" name='a12' id='a12' class='whitepanes number-field'><br>
<label for="a21">a21</label>
<input type="text" name='a21' id='a21' class='whitepanes number-field'><br>
<input type='submit' name='mysubmit' id='submit_button' value='submit'>
<button id='cancel_button'>cancel</button>
</fieldset>
</form>
Возможно, вам придется поделиться своим кодом.
Но то, что я сделал бы, - это нажать кнопку прослушивания кликов на кнопке отправки. И затем используйте запрет по умолчанию, чтобы остановить перезагрузку страницы.
например
$('#buttonID').click(function(event){
event.preventDefault(); //important
// calculations here
// validate method
});
Или, как упоминалось в mplungjan
вы можете использовать событие submit
в своей form
.
$('#formID').submit(function(event){
event.preventDefault(); //important
// calculations here
// validate method
});