【问题标题】:jquery if loop using bootstrap classesjquery if 循环使用引导类
【发布时间】:2013-12-10 07:12:51
【问题描述】:

我正在使用 twitter 引导验证类在文本框中获取成功和错误。我有两个文本框,因此当用户单击任何文本框时,jquery 应首先检查文本框是否为空,如果其为空,则框周围应出现红色。当用户开始输入数据时,文本框应将颜色更改为绿色。我想在所有文本框中应用这种技术。这是我所做的,但是在运行页面时它不起作用?:

<div class="test">
    <div class="form-group has-success">
    </div>
        </div>
    <div class="form-group has-error">
    </div>

         <div id="pt" class="tab-pane active">           
                    <asp:Label ID="label1" CssClass="form-group" runat="server" Text="Name:"></asp:Label>
                    <asp:TextBox ID="TextBox1" CssClass="form-control" runat="server" ></asp:TextBox>
                   <asp:Label ID="label2" CssClass="form-group" runat="server" Text="Surname:"></asp:Label>
                    <asp:TextBox ID="TextBox2" CssClass="form-control" runat="server"></asp:TextBox>           
  </div>

Jquery

      $("TextBox").click(function () {
            if ($.trim($('TextBox').val()) == "") {
                $('.form-group has-error');
            }
            else if ($.trim($('TextBox').val()) != "") {
                $('.form-group has-success');
            }
         });

这是我用来获取验证状态的网站:bootstrap example which i am following click here under form -> control status

【问题讨论】:

    标签: javascript jquery asp.net twitter-bootstrap


    【解决方案1】:

    您的 HTML 格式似乎不正确。 我不确定我是否正确理解了您的问题,但是如果您想显示 div,那么您的代码应该像这样工作:

           $("#tbDepartment").click(function () {
                if ($.trim($('#tbDepartment').val()) == "") {
                    $('.form-group has-error').show();
                }
                else if ($.trim($('#tbDepartment').val()) != "") {
                    $('.form-group has-success').show();
                }
             });
    

    【讨论】:

      【解决方案2】:

      试试这个:

      $(function(){
          $("#TextBox1").on("click", function(){
              if($("#TextBox1").val().length === 0){
                  $("#TextBox1").parent().addClass("has-error");
              }
          });
          $("#TextBox1").on("keydown", function(){
              if($("#TextBox1").parent().hasClass("has-error")){
                  $("#TextBox1").parent().removeClass("has-error");
                  $("#TextBox1").parent().addClass("has-success");
              }
          });
      
          $("#TextBox2").on("click", function(){
              if($("#TextBox2").val().length === 0){
                  $("#TextBox2").parent().addClass("has-error");
              }
          });
          $("#TextBox2").on("keydown", function(){
              if($("#TextBox2").parent().hasClass("has-error")){
                  $("#TextBox2").parent().removeClass("has-error");
                  $("#TextBox2").parent().addClass("has-success");
              }
          });
      });
      

      【讨论】:

      • 嗨,谢谢你,但它仍然不起作用?我尝试添加一些没有颜色或没有出现的数据。你不认为你缺少的引导类是 .form-group has-error 设置了绿色和红色的边界。这就是我在表单 -> 控制状态下获得示例 getbootstrap.com/css 的地方
      • 嗨,看看这个例子:jsfiddle.net/fatgamer85/C4qMD这是你需要的行为吗?
      • 谢谢你,它有效。但是当我输入一些东西时,如果我清除文本它会变成绿色,它仍然保持绿色。我还想要的是当我删除文本时它应该回到红色以及如何将此方法应用于所有文本框,因为我不想让我的 jquery 太长。
      • 嗨,请查看此更新:jsfiddle.net/fatgamer85/C4qMD/2 我所做的更改是我开始通过类名而不是 ID 来引用元素以减少代码长度。我还向 Input 元素添加了通用类名,以便我可以同时引用所有这些。我还添加了一个 else 块,它会检查输入字段的长度,并在其中没有任何内容时将颜色更改回红色。希望这会有所帮助
      • 它有效。谢谢你。另一件事是作为验证?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 2013-04-02
      • 1970-01-01
      相关资源
      最近更新 更多