jQuery对话框记住<input />字段中以前键入的文本

时间:2015-11-11 11:59:04

标签: javascript jquery html dom jquery-ui-dialog

我知道有几个相似的问题,但没有一个对我有用。

我首先解释如何调用jQuery Dialog。我有一个页面,其中有一个用于调用对话框的按钮:

#include <wchar.h>

void Terminal_PrintData(wchar_t const * Data);

int main(void){
    wchar_t StringData[] = L"MyData";
    Terminal_PrintData(StringData);
}

void Terminal_PrintData(wchar_t const * Data)
{
    wprintf(L"Value: %ls", Data);
}

在同一页面上,我还有以下隐藏的div:

<input type="button" class="..." value="..." onclick="forwardToEmail();"/>

函数<div title="..." id="SendToemailDialog" style="display:none> <p>...</p> <input type="text" name="Email" id="SendToemail" /> </div>

forwardToEmail

问题:

每当单击该按钮时,弹出对话框并允许用户输入电子邮件。这一切都很好。现在,当单击该按钮后,对话框将按预期再次弹出,并带有文本框,允许用户发送到其他电子邮件地址。这看起来很好。

但是,按下确定后,它实际上已向以前输入的电子邮件发送了一封电子邮件。文本框的先前值未被新值覆盖。

即使我执行以下操作:function forwardToEmail() { //$('#SendToemail').val(''); --> Does not solve the problem $('#SendToemailDialog').dialog({ resizable: false, draggable: false, height: 200, modal: true, buttons: { "OK": function () { $(this).dialog("close"); var email = $('#SendToemail').val(); //POST request removed to make example simpler $('<div title="Information">Sent to: ' + email + ' </div>').dialog({ resizable: false, draggable: false, height: 140, modal: true, buttons: { "OK": function () { $(this).dialog("close"); } } }); }, "Cancel": function () { $(this).dialog("close"); } }, close: function (event, ui) { //Another thing tried to solve the problem wihtout luck $('#SendToemailDialog').dialog("destroy"); } }); return false; } 发送电子邮件后,或在第二次发送电子邮件之前,它也不起作用,因为当您在文本框中第二次输入值时现在将记住以前的值只是&#34;&#34; (空字符串)。

我不明白为什么它坚持使用之前的价值。如果我刷新页面,那么第一次就可以了,但第二次会出现同样的问题。

我尝试了什么:

同样在代码中暗示为注释,我试图在打开对话框之前清除文本框,并且我还尝试了各种方法来在关闭对话框时销毁对话框。没有运气。

我怀疑它与隐藏div用于显示文本框的方式有关。代码不是我的,我只是试图调试它来修复错误。

0 个答案:

没有答案