Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MVC&;JS:在视图中使用一个表单,并使其看起来像';s 2视图_Javascript_Jquery_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Javascript MVC&;JS:在视图中使用一个表单,并使其看起来像';s 2视图

Javascript MVC&;JS:在视图中使用一个表单,并使其看起来像';s 2视图,javascript,jquery,asp.net-mvc,asp.net-mvc-3,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 3,在我们开始之前,我首先使用MVC 3,实体框架模型,我正在开发的web应用程序应该让用户创建一张评估卡。创建应该分两步进行 第一步是用户键入并选择作为信息的字段 第二步是用户为评估卡选择他/她想要的问题 我试图做的是将第一步和第二步都放在视图中的一个表单中,并使用div标记用jquery隐藏em。因为我不需要在每个流程步骤中使用一个视图,所以这让一切变得更容易。我可以在一个视图中完成所有这些 现在来看看问题!:) 在这个视图中,我有一个提交按钮,这个按钮似乎触发了我的整个表单,甚至是我在MV

在我们开始之前,我首先使用MVC 3,实体框架模型,我正在开发的web应用程序应该让用户创建一张评估卡。创建应该分两步进行

  • 第一步是用户键入并选择作为信息的字段
  • 第二步是用户为评估卡选择他/她想要的问题
我试图做的是将第一步和第二步都放在视图中的一个表单中,并使用div标记用jquery隐藏em。因为我不需要在每个流程步骤中使用一个视图,所以这让一切变得更容易。我可以在一个视图中完成所有这些

现在来看看问题!:)

在这个视图中,我有一个提交按钮,这个按钮似乎触发了我的整个表单,甚至是我在MVC中用标准jquery验证完成的验证。我想它也会提交我的post操作

这是我想要的函数:

当用户单击submit按钮时,我希望验证得到批准,然后隐藏第一步并显示第二步。当用户在第二步选择问题后单击submit按钮时,我希望submit按钮触发post操作。我在第二阶段还有一个额外的按钮,可以让您返回到第一步,它隐藏了第二步并显示了第一步:)

第一步有div id“hiddenstep1”,第二步有div id“Hiddenstep2”

我尝试用于此操作的Jquery脚本如下所示:

$("#hiddenstep1").hide();
$("#hiddenstep2).show();
如果有任何额外的信息让我知道,我会编辑我的问题


提前谢谢

那么你想要像巫师一样的东西

有几个jQuery插件用于支持Validation的向导

Stepy是一个很好的例子:

直到表单的最后一步,它才使用提交按钮。通过一些小的黑客攻击,您可以支持服务器端验证,并将人们踢回出现以下错误的步骤:

            var firstError = $('.input-validation-error:first,span.field-validation-error');
            if (firstError.length != 0) {
                $('#dealWizard').stepy('step', $(firstError).closest('fieldset').index() + 1);
            }
使用Stepy,每个步骤都包含在一个字段集中,所有字段集都包含在同一表单中

例如:

@using (Html.BeginForm())
{

        <fieldset title="Step 1">
            <legend>Choose Something</legend>
            <div class="editor-label">
                @Html.LabelFor(m => m.Field1)
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.Field1)
                @Html.ValidationMessageFor(m => m.Field1)
            </div>
        </fieldset>
        <fieldset title="Step 2">
            <legend>Choose Something Else</legend>
            <div class="editor-label">
                @Html.LabelFor(m => m.Field2)
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.Field2)
                @Html.ValidationMessageFor(m => m.Field2)
            </div>
        </fieldset>
        <input type="submit" class="finish"/>

}
@使用(Html.BeginForm())
{
选择一些
@LabelFor(m=>m.Field1)
@Html.TextBoxFor(m=>m.Field1)
@Html.ValidationMessageFor(m=>m.Field1)
选择别的
@LabelFor(m=>m.Field2)
@Html.TextBoxFor(m=>m.Field2)
@Html.ValidationMessageFor(m=>m.Field2)
}

你不需要给表单一个类或id吗?当我使用插件时,我总是给表单一个id,这样我就可以调用$('#formID').stepy();但也可以使用$('form').stepy();如果你需要的话。