1

mt aspxページでhtml画像コントロールを使用していて、そのコントロールのクリックイベントでjavascript関数を呼び出していますが、ここでは、クリックするたびにページが更新されます。

これが私のコードです:

<input id="wbsnew1" type="image" value="New" onclick="showHideDiv()" src="images/New.png" />

これが私のjavascriptコードです:

function showHideDiv() {
        document.getElementById("newdata2").style.display = "block";
    } 

「newdata2」はdivです

4

4 に答える 4

2
<input id="wbsnew1" type="image" value="New" onclick="return showHideDiv();" src="images/New.png" />

function showHideDiv() {
    document.getElementById("newdata2").style.display = "block";
    return false;
 } 
于 2012-11-12T09:59:51.887 に答える
0

次のコードのような関数を適用した後、戻ってみてください。

`<input id="wbsnew1" type="image" value="New" onclick="showHideDiv(); return false;" src="images/New.png" />`  

また、関数がfalseを返すようにします

function showHideDiv() {  
     document.getElementById("newdata2").style.display = "block";

return false;
}
于 2012-11-12T10:03:20.433 に答える
0

inputタグは、リロードをトリガーする他のhtml要素内にあると思います。バブリングを止めてみてください:

<input id="wbsnew1" type="image" value="New" onclick="showHideDiv(event)" src="images/New.png" />

function showHideDiv(event) {
        event.stopPropagation();
        document.getElementById("newdata2").style.display = "block";
    } 
于 2012-11-12T10:04:15.440 に答える
0

<input type="image" />要素は、フォームを送信するために使用されます(ASP.NETではポストバックと同じです)。

選択肢はほとんどありません。

  1. <input>(最良)タグをに置き換え<img />ます。type他の属性は同じです(属性が不要なことを除いて)。
  2. ハンドラーに追加return falseします: 。onclick<input onclick="showHideDiv(); return false;"
  3. falseメソッド自体から値を返し、returnキーワークをメソッド に追加します

    <input onclick="return showHideDiv();" />
    
    function showHideDiv() {
        ....
        return false;
    }
    
于 2012-11-12T10:13:33.180 に答える