我想在几页中用 bootstrap popover 替换 js 窗口,但我有两个问题,我没有找到任何解决方案。
首先,如果我单击按钮以显示弹出窗口,则会直接触发必填字段。即使我填写了它,消息“xx is a required field”仍然显示。
其次,当我尝试保存我的数据时。每个字段都包含一个额外的字符“,”。因此,如果我在代码后面的价格字段中输入 10,则该字段的值是“10”,
感谢您的帮助:)
我的代码:
<asp:Button ID="btnAdd" runat="server" Text="add" CssClass="btn btn-info"data-toggle="popover" data-placement="top" title="add something" ValidationGroup="vgAdd" />
<div id="testBox" class="hide">
<asp:ValidationSummary ID="vsTest" runat="server" ValidationGroup="vgAdd" DisplayMode="BulletList" ShowMessageBox="false" ShowSummary="false" />
<div class="row">
<div class="form-group col-sm-6">
<asp:Label ID="lblPrice" runat="server" Text="price" AssociatedControlID="txtPrice" CssClass="control-label"></asp:Label>
<div class="input-group">
<span class="input-group-addon">$</span>
<asp:TextBox ID="txtPrice" runat="server" CssClass="form-control" MaxLength="12"></asp:TextBox>
</div>
<asp:CompareValidator ID="cvPrice1" runat="server" Display="None" ValidationGroup="vgAdd" ControlToValidate="txtPrice"
ErrorMessage="price is invalid." ValueToCompare="0" Type="Double" Operator="GreaterThan"></asp:CompareValidator>
<asp:CompareValidator ID="cvPrice" runat="server" Display="None" ValidationGroup="vgAdd" ControlToValidate="txtPrice"
Type="Double" Operator="DataTypeCheck" ErrorMessage="price is invalid."></asp:CompareValidator>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" ValidationGroup="vgAdd" ControlToValidate="txtPrice"
ErrorMessage="Default price is a required field." SetFocusOnError="True" Display="Dynamic" />
</div>
<div class="form-group col-sm-6">
<asp:Label ID="lblDesc" runat="server" Text="Description" AssociatedControlID="txtDesc" CssClass="control-label"></asp:Label>
<asp:TextBox ID="txtDesc" runat="server" CssClass="form-control" TextMode="MultiLine" MaxLength="255"></asp:TextBox>
</div>
</div>
<div class="clearfix">
<asp:Button ID="btnSave" runat="server" ValidationGroup="vgAdd" CausesValidation="true"
CssClass="btn btn-primary pull-right"
OnClick="btnSaveTest_Click" Text="Save" />
</div>
</div>
$("[data-toggle=popover]").popover({
html: true,
content: function () {
return $('#testBox').html();
}
});
最佳答案
要解决第一个问题,您需要从 #btnAdd
中删除 ValidationGroup="vgAdd"
;您不想在单击此按钮时验证表单。
关于第二个 - 您的 html 代码中没有任何内容可以附加逗号。您必须在后端代码或 javascript 中有一些东西。我建议您从单击按钮 #btnSave
开始一直调试 - 首先是 javascript,然后是代码隐藏。
关于css - Bootstrap 弹出窗口和 asp :button 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41886807/