4

我有一个模式表单,可供用户重置密码。

<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()
}
});
4

1 回答 1

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'));
    }
});
于 2013-02-01T18:54:07.573 回答