Я отправляю форму, используя jquery onclick. На стороне PHP он проверяет, существует ли уже существующий документ с таким именем. Если true, в ответе возвращается маленькая форма с 3 вариантами, в зависимости от данных записи. Эти параметры отображаются в окне сообщений. Один из этих вариантов должен повторно передать данные предыдущей формы, подставив новое имя.
Проблема в том, что форма изменения имени не существует при загрузке страницы и, следовательно, не распознает класс ClickCheck в новой форме.
Как я могу повторно отправить эту форму с новым DocName?
Отправить в основной форме (на самом деле это один из четырех документов)
<a class="ClickCheck" id="Create" href="javascript:void(0)">Create Bill</a>
JQuery:
$('.ClickCheck').click(function()
{
var ButtonID = $(this).attr('id');
$('#Clicked').val(ButtonID);
var Form = $('#TheForm');
if(ButtonID == "Save")
{
// Do save code
}
else
{
var FormData = Form.serialize();
$.ajax(
{
type: "POST",
url: "scripts/Ajax.php",
data: FormData,
success: function(response)
{
$('#MWContent').html(response);
$('#MessageWindow').show();
}
});
}
});
Тогда в ответе у меня есть:
<form id="ChangeName" name="ChangeName">
Use another name:
<input type="text" id="DocName" name="DocName" size="60" maxlength="60" value="" placeholder="Document Name" />
<a class="ClickCheck" id="NewName" href="javascript:void(0)">Go</a>
</form>
Идея состоит в том, чтобы «NewName» повторно отправил форму (с новым именем, конечно.) Я могу, конечно, обнаружить это в функции щелчка.
Вы можете прикрепить click()
событие в document
сделать его глобальным.
$(document).on('click', '.ClickCheck', function(e){
e.preventDefault() // <<<< Either this
// Do stuff
return false // <<<< Or this
})
Также не используйте href="javascript:void(0)"
использовать return false
или же e.preventDefault()
в функции обратного вызова.
Других решений пока нет …