我知道有几个相似的问题,但没有一个对我有用。
我首先解释如何调用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用于显示文本框的方式有关。代码不是我的,我只是试图调试它来修复错误。