【问题标题】:My bootstrap form has two un-clickable inputs, can't figure out why我的引导表单有两个不可点击的输入,不知道为什么
【发布时间】:2018-12-29 21:18:15
【问题描述】:

我有一个 bootstrap 3 表单。

当它处于表格和更大的媒体查询状态时,中间输入字段会以某种方式覆盖上面的两个输入,使它们无法点击jsfiddle.net/wT7gp/

我在 jsfiddle 中放了一个例子。 (记得把它弄得足够宽才能看到问题)

复制: 打开链接。 使外窗变大。 单击名字的输入。

期望它开始输入状态,但没有任何反应。

希望这里有人可以解释我是怎么造成它的 :) 我没能找到问题。 (否则是的,中间元素覆盖了其他两个元素。

【问题讨论】:

    标签: css twitter-bootstrap twitter-bootstrap-3


    【解决方案1】:

    您应该使用 row 类将表单组的行包装在 div 中,如下所示:
    小提琴http://jsfiddle.net/wT7gp/1/
    HTML

    <div class="row">
        <div class="form-group  col-sm-6">
            <input class="form-control input-lg " placeholder="First Name" id="first-name" tabindex="1" name="FirstName" data-bind="value: firstName" type="text" maxlength="50" />
            <label for="first-name" style="display:none;" data-bind="validationMessage: firstName, css: { error: !firstName.isValid() }" class="error"></label>
        </div>
    
        <div class=" form-group col-sm-6">
            <input class="form-control input-lg " placeholder="Last Name" id="last-name" tabindex="2" name="LastName" data-bind="value: lastName" type="text" maxlength="50" />
            <label for="last-name" style="display:none;" data-bind="validationMessage: lastName, css: { error: !lastName.isValid() }" class="error"></label>
        </div>
    </div>
    <div class="row">
        <div class="col-sm-12 form-group">
            <input class="form-control input-lg " placeholder="Email" id="email" tabindex="3" name="Email" data-bind="value: email" type="email" maxlength="50" />
            <label for="email" style="display:none;" data-bind="validationMessage: email, css: { error: !email.isValid() }" class="error"></label>
        </div>
    </div>
    <div class="row">
        <div class="col-sm-6 form-group">
            <input class="form-control input-lg " placeholder="Choose a password" id="password1" tabindex="4" name="Password" data-bind="value: password" type="password" />
            <label for="@Html.CamelCaseName(Name)" style="display:none;" data-bind="validationMessage: password    , css: { error: !password.isValid() }" class="error"></label>
    
        </div>
        <div class="col-sm-6 form-group">
            <input class="form-control input-lg " placeholder="password, again" id="password2" tabindex="5" name="ConfirmPassword" data-bind="value: confirmPassword" type="password" />
            <label for="@Html.CamelCaseName(Name)" style="display:none;" data-bind="validationMessage: confirmPassword   , css: { error: !confirmPassword.isValid() }" class="error"></label>
    
        </div>
    </div>
    

    【讨论】:

    • @s093294 如果我已经回答了您的问题,请检查我的答案旁边的小复选标记并将其标记为答案。如果仍有问题,请发表评论或更新您的帖子:)。
    • 嗯?!好吧,它也解决了我的问题,但我不知道为什么这些 class="row" div 会产生如此大的不同!
    【解决方案2】:

    我遇到了同样的问题。这是由覆盖我的输入控件的 div 引起的。 div 似乎“无所不知”。

    所以当我确定是哪个 div 导致了问题时,我应用了overflow:hidden; 样式。 我猜这就是为什么 row 类为 Kevin Pei 工作的原因 - 也许它可以保持 col div 的包含。

    旁白:我使用 Firefox Firebug 向我展示了哪个 div 覆盖了我的控件。

    【讨论】:

    • 同样@kartikg3,我刚刚找到了 div,而不是应用溢出:隐藏我只是应用 col-xs-12 以便我的 div 正确调整大小。 div 对我来说是这样的
    • 天啊。我也是。真是浪费时间,但我很高兴@kartikg3 发布了这个答案。我认为我的问题是我正在使用的第 3 方模板中的自定义 form-group 迫使我不按应有的方式使用 form-group col-xx-xx 所以 rows 然后“不知道界限”......跨度>
    【解决方案3】:

    我们在我们的网络应用程序中遇到了一个非常相似的问题。使用bootstrap 3.3.7,我们的注册表单在 iPhone 上不再适用。初始形式如下所示:

    <form ...>
        <div class="col-xs-12 col-sm-6">
            <div class="form-group string required">
                <input ...>
            </div>
        </div>
        <div class="col-xs-12 col-sm-6">
            <div class="form-group string required">
                <input ...>
            </div>
        </div>
        <div class="col-sm-6 col-md-8">
            <div class="form-group string required">
                <input ...>
            </div>
        </div>
        <div class="col-sm-6 col-md-4">
            <input type="submit" value="Register">
        </div>
    </form>

    问题是由最后两个div 元素引起的,它们没有xs-size 的对应类定义。因此,在 iPhone 上,&lt;div class="col-sm-6 col-md-4"&gt; 类会导致一个非常大的div 覆盖整个表单并阻止div 下方的输入字段的触摸事件。

    解决方案只是在 div 中添加一个 xs-size 类,并且在 iPhone 上一切正常。在我们的例子中,我们调整了这样的形式:

    <div class="col-xs-12 col-sm-6 col-md-8">
        <div class="form-group string required">
            <input ...>
        </div>
    </div>	

    【讨论】:

      【解决方案4】:

      在我的例子中,我为不允许输入的控件设置了 z-index:1,而没有为允许输入的控件设置 z-index。

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签