如何在 mvc4 中为以下代码编写 javascript 或 jquery 验证?

Posted

技术标签:

【中文标题】如何在 mvc4 中为以下代码编写 javascript 或 jquery 验证?【英文标题】:how to write javascript or jquery validation for below code in mvc4? 【发布时间】:2014-04-17 18:30:35 【问题描述】:

如果用户选中任何复选框,我想验证 TextBox 作为必填字段。

我如何验证上述要求。有人可以帮忙吗?

下面是查看代码sn-p。

<div>
         <div id="">
            <input type="checkbox"  id="partsChk" name="partsChk"/><label      
            class="enrollment_side">
                Parts (including IRFs)
            </label>
        </div>


          <div id="">
            @html.TextBox("PartsTitle","", new  @class = "enrollment_tbox", placeholder 
              = "Parts Contact Title (i.e. Parts Manager)" )


             <br />
            @Html.TextBox("PartsFirstName", "", new  placeholder = "First Name" )
            @Html.TextBox("PartsLastName","", new  placeholder = "Last Name" )
            @Html.TextBox("PartsEmpId","",  new  placeholder = "BMW Employee ID" )


            <br />

            </div>

             </div>


            <div>
         <div id="">
           <input type="checkbox" id="salesChk" name="salesChk" /><label  
        class="enrollment_sidehdr">Sales – Coming in Q3 2014
            </label>
        </div>


             <div id=""> 
        @Html.TextBox("SalesTitle","", new  @class = "enrollment_tbox", placeholder =  
        "Sales Contact Title (i.e. Sales Manager)" )

            <br />

          @Html.TextBox("SalesFirstName", "", new  placeholder = "First Name" )
            @Html.TextBox("SalesLastName","", new  placeholder = "Last Name" )
            @Html.TextBox("SalesEmpId","",  new  placeholder = "BMW Employee ID" )

        </div>

       </div>


     <div>
      <div id="">
       <input type="checkbox" id="serviceChk" name="serviceChk" /><label  
       class="enrollment_sidehdr">Service – Coming in Q3 2014
            </label>
        </div>


        <div id="">
           @Html.TextBox("ServiceTitle","", new  @class = "enrollment_tbox", 
        placeholder = "Service Contact Title (i.e. Service Manager)" )
            <br />

           @Html.TextBox("ServiceFirstName", "", new  placeholder = "First Name" )
            @Html.TextBox("ServiceLastName","", new  placeholder = "Last Name" )
            @Html.TextBox("ServiceEmpId","",  new  placeholder = "BMW Employee ID" )


            <br />

        </div>

         </div>

【问题讨论】:

所以你有多个与每个文本字段相关的复选框? 是的,我有多个与文本框组相关的文本框。即,对于每个组,我都有一个复选框 【参考方案1】:

请参考此示例代码。我已经编写了 HTML 和 jQuery 代码,将其集成到您的应用程序中

HTML

Group 1
<input type="checkbox"  id="1" class="cb"/>
<input type="text" class="txt1">
<input type="text" class="txt1">
    <br/>
    <br/>
Group 2
<input type="checkbox"  id="2" class="cb"/>
<input type="text" class="txt2">
<input type="text" class="txt2">
    <br/>
    <br/>
Group 3
<input type="checkbox"  id="3" class="cb"/>
<input type="text" class="txt3">
<input type="text" class="txt3">
    <br/><br/>
    <input type="button" id="button1" value="click me" />

jQuery

$("#button1").click(function()
    $(".cb").each(function()
        var flag = 0;
        if($(this).is(':checked'))
        
            $(".txt" + $(this).attr("id")).each(function()
                if($(this).val() == "")
                
                    flag = 1;
                
            );
            if(flag == 1)
            
                alert("Fields of Group " + $(this).attr("id") + " are empty, Please fill it");
            
        
    );
);

Live demo here

【讨论】:

【参考方案2】:

如果您的命名约定与您编写的相同,您可以使用以下代码...

将复选框的 ID 分别更改为 PartsChk、SalesChk 和 ServiceChk。然后编写以下脚本

$('input[type=checkbox]').each(function()
       if($(this).is(':checked'))
             var prefix=$(this).id.replace('Chk','');
             if($('#'+prefix+'Title').val()=='')
                    alert(prefix+'Title Field can not be left Empty');
                    $('#'+prefix+'Title').focus();
              
              else if($('#'+prefix+'FirstName').val()=='')
                    alert(prefix+'FirstName Field can not be left Empty');
                    $('#'+prefix+'FirstName').focus();
              
              else if($('#'+prefix+'LastName').val()=='')
                    alert(prefix+'LastName Field can not be left Empty');
                    $('#'+prefix+'LastName').focus();
              
              else if($('#'+prefix+'EmpId').val()=='')
                    alert(prefix+'EmpId Field can not be left Empty');
                    $('#'+prefix+'EmpId').focus();
              
       

这个 JQuery 代码会给出你想要的,如果相应的复选框被选中并且在焦点到空白元素之后,如果字段留空,它会发出警报..

【讨论】:

以上是关于如何在 mvc4 中为以下代码编写 javascript 或 jquery 验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中为 CachedNetworkImage 编写小部件测试

如何在 Java 中为 Android 编写 XML 内容?

如何在角度 9 中为多个 if else 语句编写测试用例

如何在 (jasmine + karma) 中为以下方法编写测试,该方法在构造函数中注入了 ComponentFactoryResolver 和 ApplicationRef

如何在 Flutter 中为 Web 编写特定于平台的代码?

如何在 TypeScript 中为类属性动态分配值