0

重複の可能性:
C# で HtmlButton のポストバックを防止する

これが私のJavaScript関数です:

<script type = "text/javascript">
    function CheckForEmptySearchBox(id) {
        var index = id.substring(id.length - 1);
        var boxContent = document.getElementById("contentMain__lvTSEntry__txtClientName_" + index).value;
        if (boxContent == "") {
            alert("Please enter search criteria");
            return false;
        }
    }
</script>

そしてマークアップ:

<asp:Button ID="_btnSearch" runat="server" OnClientClick = "return CheckForEmptySearchBox(this.id)" />

このコードは機能しています。つまり、texbox が空の場合、メッセージはユーザーに検索基準を入力するように促し、javascript はページのポストバックを防ぎます。ただし、ユーザーがテキストを入力すると、メッセージ プロンプトは表示されませんが、ページはまだポストバックしません。どうしたの?

編集

if (boxContent == "") {
     alert("Please enter search criteria");
     return false;
   }
   else {
     return true;
   }

ページはまだ投稿されていません。

4

3 に答える 3

2

trueを返すことを意味する場合は、関数からtrueを返す必要があります。

于 2012-09-05T17:54:07.797 に答える
1
<script type = "text/javascript">
        function CheckForEmptySearchBox(id) {
            var index = id.substring(id.length - 1);
            var boxContent = document.getElementById("contentMain__lvTSEntry__txtClientName_" + index).value;
            if (boxContent == "") {
                alert("Please enter search criteria");
                return false;
            }
else{ return true;}
        } 

あなたはonclientclick関数を返すことを求めており、テキストボックスが値を持っているときに値を返さないため、スタックしている

  <asp:Button ID="_btnSearch" runat="server" OnClientClick = "return CheckForEmptySearchBox(this.id)" />
于 2012-09-05T17:57:26.110 に答える
1

検証に合格した場合に true を返すのを忘れています。

function CheckForEmptySearchBox(id) {
        var index = id.substring(id.length - 1);
        var boxContent = document.getElementById("contentMain__lvTSEntry__txtClientName_" + index).value;
        if (boxContent == "") {
            alert("Please enter search criteria");
            return false;
        }

     return true; //<--you forgot this
    } 
于 2012-09-05T17:57:49.147 に答える