我有一个表单,其中包含使用input-append
类的附加图标的输入。我正在表单上进行服务器端验证。
如果返回了错误消息,那么我将消息添加到与div
(具有类invalid-feedback
相同的父级中的input
类的is-invalid
})。控制错误消息可见性的CSS选择器是.form-control.is-invalid ~ .invalid-feedback
。
我的问题来自input-append
,其中包含以下CSS选择器.input-group > .input-group-append:not(:last-child) > .input-group-text
。这决定了附加的div
是否是最后一个,并且如果它是圆角,则会对其进行舍入。
但是,<div class="invalid-feedback">
成为:last-child
,因此input-group-append
不会出现圆角。下面的代码段显示了这一点。
这是一个已知的Bootstrap问题,还是我做错了什么?
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/open-iconic/1.1.1/font/css/open-iconic-bootstrap.min.css">
<title>Bootstrap 4</title>
</head>
<body>
<div class="row p-3">
<div class="col-md-6 mb-3">
<label class="sr-only">End Date/Time</label>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">Start Date</div>
</div>
<input type="text" class="form-control is-invalid" placeholder="Date Input">
<div class="input-group-append">
<div class="input-group-text"><i class="oi oi-calendar"></i></div>
</div>
<div class="invalid-feedback">
Error Message
</div>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:4)
目前有一些known issues具有Bootstrap 4输入组和验证类。
我找到的解决方法是将invalid-feeback
保留在input-group
内的倒数第二个元素,以便input-group-append
仍然是最后一个孩子。这允许input-group-append
具有适当的圆角。然后使用order-last
上的invalid-feedback
实用程序类,以便最后显示。
https://www.codeply.com/go/DMDBmq8TJg
<div class="row p-3">
<div class="col-md-6 mb-3">
<label class="sr-only">End Date/Time</label>
<div class="input-group ">
<div class="input-group-prepend">
<div class="input-group-text">Start Date</div>
</div>
<input type="text" class="form-control is-invalid" placeholder="Date Input">
<div class="invalid-feedback order-last ">
Error Message
</div>
<div class="input-group-append">
<div class="input-group-text"><i class="oi oi-calendar"></i>
</div>
</div>
</div>
</div>
</div>
答案 1 :(得分:3)
在进行了一些挖掘之后,似乎这是一个已知问题。请参阅GitHub上的issue #25110。我没有找到它,因为我没有找到正确的东西。
用户 cbossi suggets a fix使用order
类。有关示例,请参阅下面的代码段。基本上,要使错误消息div
不是:last-child
的{{1}},请将其放在附加组之前。然后使用input-group
类重新排序内容。
order-1