我有一个模式表单,可供用户重置密码。
<div id="password-form" title="Reset Password">
<form method="post">
<fieldset>
<label for="emailreset">Enter Email Address</label>
<input type="text" name="emailreset" id="emailreset" class="text ui-widget-content ui-corner-all" />
</fieldset>
</form>
</div>
当用户点击重置密码按钮时,我会调用一个检查用户是否存在的功能。 在帖子成功后,我将div的内容更改为生成的消息。 所有这些都按预期工作。现在我想要发生的是一旦关闭模态对话框,我希望内容重置回到表单。我在解决这个问题时遇到了问题。
以下是我对jquery的了解
$( "#password-form" ).dialog({
autoOpen: false,
height: 200,
width: 300,
modal: true,
buttons: {
"Reset Password": function() {
$.ajax({
url: "/model/websitemanager.cfc"
, type: "post"
, dataType: "html"
, data: {
method: "resetpassword"
, emailreset: $("#emailreset").val()
}
, success: function (data){
//alert(data);
$('#password-form').html('<p>'+data+'</p>');
}
// this runs if an error
, error: function (xhr, textStatus, errorThrown){
// show error
alert(errorThrown);
}
});
<!--//end ajax call//-->
},
},
close: function() {
emailreset.val( "" ).removeClass( "ui-state-error" );
$(this).dialog('destroy').remove()
}
});
答案 0 :(得分:2)
这是我在我的应用程序中全局可用的一个简单函数:
function clearInputs(target) {
$(target).find(':input').each(function () {
switch (this.type) {
case 'password':
case 'select-multiple':
case 'select-one':
case 'text':
case 'textarea':
$(this).val('');
break;
case 'checkbox':
case 'radio':
this.checked = false;
}
});
}
以下是我如何将它用于jQuery对话框:
$('#myDialog').dialog({
buttons:{
'Submit':function () {
// Do something here
clearInputs($(this).find('form'));
$(this).dialog('close');
},
'Cancel':function () {
clearInputs($(this).find('form'));
$(this).dialog('close');
}
},
close:function () {
clearInputs($(this).find('form'));
}
});