对话框不显示在 If 语句中

Dialog does not show in If statement

当我的表格被保存时,我有一个提醒。

然而,当我添加一个对话框时,由于某种原因它不起作用..

我正在使用 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>

知道为什么我的警报起作用但我的对话框不起作用,我假设它是因为它可能不喜欢它,因为它在 if 语句中?

我也试过validateForm函数:

   function validateForm() {
    $("#dialog").dialog({
        modal: true,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
            }
        }
    });
}

仍然没有运气..

谢谢

这是 truevalidateForm 的赋值:

if (validateForm = true)

因此无论 validateForm 中的内容如何,​​表达式将始终为 true(并且它 "was" 是一个函数)!

这是对调用validateForm等于true的结果的测试:

if (validateForm() == true)

这是检查布尔值真实性的首选方法:

if (validateForm())

说了这么多,你的 validateForm 甚至没有 return 一个值,所以这整个问题需要重新考虑。 能否解释一下代码的总体目标? :)

忽略其他问题,您可以通过向您的函数添加 return true; 来进一步测试(暂时):

function validateForm() {
    ...
    return true
}

那么这至少会打开对话框:

if (validateForm()) {
    $("#dialog").dialog({
        modal: true,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
            }
        }
    });
}