嗨,我有一个警告,显示我的表格保存的时间。
然而,当我添加一个对话框时,由于某种原因它不起作用..
我正在使用Html.BeginForm并调用onsubmit =" validateForm(event)"如下所示:
@using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data", onsubmit = "validateForm(event)" }))
{
我使用此提醒,点击提交后工作正常:
if (validateForm = true) {
alert("test");
}
但如果我将其更改为对话框则不起作用:
if (validateForm = true) {
$("#dialog").dialog({
modal: true,
buttons: {
Ok: function () {
$(this).dialog("close");
}
}
});
}
使用html:
<div id="dialog" title="Basic dialog">
<p>Thank you for submitting this form. This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
任何想法为什么我的警报工作但不是我的Dialog,我假设它,因为它可能不喜欢它,因为它在if语句中?
我也在validateForm函数上尝试过它:
function validateForm() {
$("#dialog").dialog({
modal: true,
buttons: {
Ok: function () {
$(this).dialog("close");
}
}
});
}
仍然没有运气..
由于
答案 0 :(得分:2)
这是true
到validateForm
的分配:
if (validateForm = true)
因此,无论true
中的内容是什么,表达式始终为validateForm
(而且它是“函数”)!
这是对validateForm
等于true
的结果的测试:
if (validateForm() == true)
这是检查truthyness的布尔值的首选方法:
if (validateForm())
说了这么多,你的validateForm
甚至都没有返回值,所以整个问题需要重新考虑。 您能解释一下代码的总体目标吗?:)
忽略其他问题,您可以通过向您的函数添加return true;
来进一步测试(仅适用于此):
function validateForm() {
...
return true
}
然后这至少会打开对话框:
if (validateForm()) {
$("#dialog").dialog({
modal: true,
buttons: {
Ok: function () {
$(this).dialog("close");
}
}
});
}