открыть диалог мой с помощью кнопки затем поместить мой курсор в поле ввода и прессы введите свои диалоговые закрывается и эта строка вставляется в адресную строку:диалоговое окно JQuery UI закрывается ввести в поле ввода
JQuery:
$('#dialog').load("form-incident.php").dialog({
title: "Add Incident",
autoOpen: false,
resizable: false,
width: 800,
modal:true,
position: ['center', 'top+50'],
buttons: {
Add: function(){
$.ajax({
url : 'save.php',
type : 'POST',
data : $('form').serialize(),
context: $(this),
success: function (result) {
if (result === "true") {
alert('Incident has been added successfully');
} else {
alert('ERROR: Cannot insert data to MySQL table');
}
window.location.reload();
$(this).dialog("close");
},
error : function(){
alert('ERROR: Check database connection');
}
});
},
Cancel: function() {
$(this).dialog("close");
}
}
});
форм-incident.php:
<form>
Name: <input type="text" name="name" id="name"><br><br>
Project:
<select name="project" id="project">
<option value="test">Test</option>
</select><br><br>
Incident:<br> <textarea name="incident" id="incident" style="resize:none; width: 100%;" rows="14" cols="94"></textarea>
</form>
Как я могу исправить проблему, поэтому диалоговое окно не закрывается, но все же реагирует на ввод, если были какие-то предложения раньше, когда форма была заполнена?
Не видя обработанную разметку, которые образуют-incident.php возвращается, я не могу сказать наверняка. Но, я предполагаю, что включает форму (с методом 'get', так как вы видите значения querystring, добавленные в ваш URL-адрес). Все браузеры автоматически отправляют форму, если вход имеет фокус, и пользователь нажимает кнопку ввода. И если форма настроена на отправку самому себе, когда она отправлена, она перезагружает страницу. Вы можете обработать событие отправки и вызвать preventDefault() на нем. Но я не уверен, что вы подразумеваете под «но все же реагирует, чтобы войти, если были какие-то предложения раньше, когда форма была заполнена». – Elezar
@Elezar Спасибо за ваш ответ, если я вызываю диалог preventDefault() для отправки сообщения о завершении, и строка запроса вставляется в адресную строку. Я также попытался установить событие keyCode, но тогда я не могу использовать enter, если есть какие-либо предложения, когда я должен заполнить поле ввода. – Madsen
Хорошо, здесь есть что-то еще. У вас нет кнопки отправки внутри этой формы, поэтому нажатие Enter не должно даже отправлять ее. Это все равно похоже на представление формы, хотя, поскольку единственный другой способ, я мог думать, что Enter приведет к навигации через явный код. Может быть, есть другой элемент формы где-то на странице, что весь диалог внутри? – Elezar