1

私のASP Webアプリでは、即席のjqueryでダイアログボックスを作成しています。送信ボタンをクリックする最初の 3 回の試行では、onclick イベントがトリガーされた後、ページは正常に機能しますが、次の試行では、ページは常に Internet Explorer が Web ページを表示できないことを示します。多分私はjqueryの実行に問題があります..

  <asp:Content ID="Content1" ContentPlaceHolderID="head"
        runat="server">
    <script type="text/javascript" language="javascript">
       //Update PartNumber
            function confirmSubmitUpdatePartNumber() {
                $.prompt('Are you sure you want to Update this PartNumber?'
                , {
                    buttons: { Ok: true, Cancel: false }
                    , callback: confirmSubmitResultUpdatePartNumber
                }
            );
                return false;
            }
            function confirmSubmitResultUpdatePartNumber(v, m, f) {
                if (v) //post back if the user clicked OK
                    $('#ctl00_mainContentPlaceholder_btnPartNumber').click();
            }
        </script>  
    </asp:Content>

 <asp:Content ID="detailContent" ContentPlaceHolderID="mainContentPlaceholder"
    runat="server">   

      <input type="button" onclick="return confirmSubmitUpdatePartNumber();"  value="Update PartNumber Location" />   
       <asp:Button ID="btnPartNumber" runat="server" Style="display: none;" 
              onclick="btnPartNumber_Click"/>
</div>
4

2 に答える 2

0
  1. onclick で実行したくない場合は、$.submit を使用します (ユーザーがクリックする代わりに Enter キーを押す場合)。すべてのユーザーがクリックするマウスを持っているわけではないため、Web サイトにアクセスできないようにすることは非常に悪い習慣です。

  2. インライン JavaScript を避けたい。それを外部スクリプト ファイルに入れ、すべてのスクリプトを 1 つのファイルに入れます。

  3. 使用し$('#form').submit(function() {});たら、プロンプト テストを実行して、true を返す (送信する場合) または false を返す (キャンセルをクリックした場合) ことができます。次に、confirmSubmitResultUpdatePartNumber 関数はまったく必要ありません。コードを短くしてクリーンアップしました。余分なボタンを削除して送信ボタンを表示することもできます。これにより、HTML がより意味のあるものになります。

全体として、より優れたコーディング手法を使用する必要があります。HTML5BoilerPlate ドキュメントを見てみてください: http://html5boilerplate.com/docs/#Make-it-Better

デバッグには、IE ではなく Firebug を備えた Firefox を使用することをお勧めします。次に、コンソールを調べて、何か壊れているかどうかを確認できます。コンソールに便利なアラートを追加して、スクリプトがどこに到達するかを確認することもできます。console.log("I've made it this far");

幸運を!

于 2011-06-28T16:36:43.700 に答える
0

「Internet Explorer では Web ページを表示できません」と表示される場合は、サーバー エラーである可能性が高くなります。

関係ないかもしれませんが、サーバー側のクリック ハンドラーの は (大文字で) するasp:Button必要があります。OnClick

btnPartNumber_ClickVisual Studio で毎回呼び出されていることを確認できますか?

于 2011-06-28T17:01:24.113 に答える