首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bootstrap Validator和Ajax在部分视图中开始表单冲突

问Bootstrap Validator和Ajax在部分视图中开始表单冲突
EN

Stack Overflow用户
提问于 2016-03-10 13:54:33
回答 1查看 903关注 0票数 0

我正在使用Ajax.Begin表单在表单上发布数据而不刷新整个页面,我需要验证文本框,如果它有值,则应该发布数据,否则应该显示验证消息,但问题是验证和发布数据都是同时发生的。如果我不添加jquery.unobtrusive-ajax.js文件,那么我的局部视图将作为单独的白色页面返回,但验证正在工作,表单不会发布,直到文本框有值,但如果我在页面上添加jquery.unobtrusive-ajax.js文件,则无论文本框是否有值,它都会发布数据。代码出了什么问题,我一点也不明白。请帮帮我,我已经花了两天时间尝试了我可能的解决方案,但仍然没有成功。

这是我的主视图(父视图),其中包含PartialView

代码语言:javascript
复制
<div id="div_SearchPatient2">
     @Html.Partial("SearchPatientPartial");                                                    
</div>

@Scripts.Render("~/bundles/jqueryval")

jqueryval是一个包含jquery.unobtrusive-ajax.js文件的包。

代码语言:javascript
复制
  <div> 
     @using (Ajax.BeginForm("Search", "Patient", new { },
             new AjaxOptions
             {
               HttpMethod = "POST",
               UpdateTargetId = "patientfound"
             },
             new
             {
               @name = "SearchPatientForm",
               @id = "frmSearchPatient",

             }
             ))
             {
                 @Html.AntiForgeryToken()
                 <div class="form-title">
                     Enter MR Number to search patient
                 </div>

                 <div class="col-lg-4">
                    <div class="form-group">
                      <div class="col-lg-6">
                         <label class="control-label">MR Number</label>
                      </div>
                    <div class="col-lg-6">
                       <input type="text" class="form-control"    name="command" data-mask="999-99-99" placeholder="000-00-00" required data-bv-notempty="true" data-bv-notempty-message="MRNo. is required." />
                    </div>
                   </div>
                 </div>
                  <div class="form-group">
                    <div class="col-md-4">
                       <input class="btn btn-darkorange" type="submit" value="Search" />
                    </div>
                  </div>
                <div id="patientfound">
                   @Html.Partial("PatientFoundPartial")
                </div>
           }
</div>

其中patientfound是一个div,如果找到它,它将呈现详细信息。我已经在AjaxBeginForm的UpdateTargetId中给出了这一点。

我的控制器返回PartialView

代码语言:javascript
复制
 [HttpPost]
 [ValidateAntiForgeryToken]
 public ActionResult Search(FormCollection collection, string id)
 {
    // some code to get data
    return PartialView("PatientFoundPartial");
 }
EN

回答 1

Stack Overflow用户

发布于 2016-03-10 14:11:06

在Ajax选项中,如下所示:

代码语言:javascript
复制
OnBegin = "return StartValidation();"

现在使用以下代码定义一个名为StartValidation的javascript函数:

代码语言:javascript
复制
function StartValidation(){ if($('fromid').validate()){return true;}return false;}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35908666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档