2017-01-27 7 views
0

ブートストラップポップオーバーでいくつかのページをjsウィンドウに置き換えたいのですが、2つの問題があり、解決策が見つかりません。ブートストラップポップオーバーとaspの問題:button

まず、ボタンをクリックしてポップオーバーを表示すると、必須フィールドが直接起動されます。私がそれを記入しても、 "xxは必須フィールドです"というメッセージが表示されたままになります。

第2に、自分のデータを保存しようとするときです。各フィールドには余分な文字 "、"が含まれています。だから私は私のフィールドの値の背後にあるコードで価格フィールドに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(); 
     } 
    }); 
は、

答えて

0

最初の問題を解決するには、ValidationGroup="vgAdd"#btnAddから削除する必要があります。このボタンがクリックされたときにフォームを検証したくない場合。

ご参考までに、あなたのHTMLコードにはカンマを付け加えるものは何もありません。バックエンドコードまたはjavascriptに何かがある必要があります。 #btnSaveボタンがクリックされた時点から、最初のjavascriptをクリックしてコードをデバッグすることをお勧めします。

+0

ありがとうMorpheus。 ValidationGroupを削除したので、Popoverは必須フィールドを起動しません。しかし、フィールドが空でフォームを送信したい場合、メッセージは表示されません。フォーカスのみがフィールド上に移動しますが、「デフォルト価格は必須フィールドです」というメッセージが表示されます。フィールドの下には表示されません。これは、ポップオーバーが閉じていて再び開いた場合にのみ表示されます。余分な文字については、 "、"私のすべてのフィールドで私は解決策を見つけることができませんでした。オプションコンテンツの代わりにデータコンテンツを使用している場合、私は何の問題もありません。私はテンプレートで試してみましたが、同じ問題です。本当に変だ。 –

+0

idを持つdivをポップオーバーするためにコンテンツを添付すると、 'testBox'は元の場所から削除され、バリデーターは起動しません。メモリからは、ボタンをクリックしたときに '$( '#testBox')。detach()を呼び出す必要があると思います。コンテンツを設定するには、 'content:$( '#testBox').html()'を試してみましたか? – Morpheus

+0

実際、私の最大の問題は、#testBoxを使用してコンテンツを表示している場合、そのボックスを表示する方法によって2つの異なる結果が生じることです。ボタンがJSを使用してポップアップを作成する場合はすべて問題ありませんが、ボタンがポップオーバーを使用する場合、私はコードの背後にあるときに各フィールドの最後にカンマを追加します。 –