我有一个警报,显示保存表单的时间。

但是,当我添加对话框时,由于某种原因它不起作用。

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


因此,无论true中的内容是什么(并且“是”一个函数),表达式始终为validateForm

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

if (validateForm() == true)


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

if (validateForm())


说了这么多,您的validateForm甚至都不返回值,因此整个问题都需要重新考虑。您能解释一下代码的总体目标吗? :)

忽略其他问题,您可以通过在函数中添加return true;进行进一步测试(目前):

function validateForm() {
    ...
    return true
}


然后至少现在将打开对话框:

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

关于javascript - 对话框未显示在If语句中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29669854/

10-13 00:40