Форма JQuery Clear на закрытии
У меня есть следующий JQuery Dialog script, я пытаюсь выяснить, как отключить функцию, которая очищает форму, когда я закрываю диалог.
function clearForm()
{
$(':input','#calcQuery')
.not(':button, :submit, :reset, :hidden')
.val('');
};
// form popup
$(document).ready(function()
{
//var dataString = $("#calcQuery").serialize();
$("#formBox").dialog({
bgiframe: true,
autoOpen: false,
height: 600,
width: 400,
modal: false,
closeOnEscape: true,
title: "Calculator",
buttons: {
"Calculate": function() {
// form post
$.ajax({
type: "POST",
url: "calc.php",
data: $("#calcQuery").serialize(),
dataType: "html",
success: function(response)
{
$("#calcBox").html(response);
$("#calcBox").show();
},
error: function
(xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(thrownError);
}
}).responseText;
// form post
}
}
});
$('#calcButton').click(function(){
$('#formBox').dialog('open');
return false;
});
});
$("#formBox").bind('dialogclose', function(event)
{
clearForm();
});
Ответы
Ответ 1
Я получил его для работы, используя...
function clearForm(form)
{
$(":input", form).each(function()
{
var type = this.type;
var tag = this.tagName.toLowerCase();
if (type == 'text')
{
this.value = "";
}
});
};
и.....
// form post
$.ajax({
type: "POST",
url: "calc.php",
data: $("#calcQuery").serialize(),
dataType: "html",
success: function(response)
{
$("#calcBox").html(response);
$("#calcBox").show();
clearForm("#calcQuery");
},
error: function
(xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(thrownError);
}
}).responseText;
// form post
... теперь.. как установить переключатели на значение по умолчанию "ГБ"?
KB <input type="radio" name="curr_unit" value="KB" />
MB <input type="radio" name="curr_unit" value="MB" />
GB <input type="radio" name="curr_unit" value="GB" checked/>
TB <input type="radio" name="curr_unit" value="TB" />
спасибо
Ответ 2
Это будет reset форма:
$("#form").trigger( "reset" );
Ответ 3
Используйте закрыть событие
$("#formBox").dialog({
bgiframe: true,
autoOpen: false,
height: 600,
width: 400,
modal: false,
close: clearForm
});
Ответ 4
Более элегантная комбинация ваших методов:
...
beforeClose: function() {
$("#form").trigger("reset");
},
...
Это будет reset ваша форма для сохранения, отмены и закрытия кнопки заголовка.
Исключение для select2, которое необходимо выполнить вручную:
$("#mySelect2").select2('data', null);
внутри того же самого beforeClose
Ответ 5
`jQuery("#form").trigger( "reset" );`
поместите его в функцию успеха после сообщение об успешном завершении.
Тогда он отлично работает!
Пример:
success : function(){
jQuery('#contactsMsgs').html('<p class="success">All is well, your e–mail has been sent.</p>');
jQuery('#yourformname').trigger( 'reset' );
spinner.hide();`
}