Dialog在If语句中不起作用

时间:2015-04-16 08:55:37

标签: javascript jquery dialog alertdialog

嗨,我有一个警告,显示我的表格保存的时间。

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

我正在使用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");
            }
        }
    });
}

仍然没有运气..

由于

1 个答案:

答案 0 :(得分:2)

这是truevalidateForm的分配:

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");
            }
        }
    });
}