2011-07-20 12 views
0

私は、次のコードを持っている:onClientClickを実行し、ページのポストバックすぐ

functions.js =>

function loadPopup() { 
    $("#backgroundPopup").css({ 
     "opacity": "0.7" 
    }); 
    $("#backgroundPopup").fadeIn("slow"); 
    $("#popupContact").fadeIn("slow"); 
} 

//disabling popup with jQuery magic! 
function disablePopup() { 
    $("#backgroundPopup").fadeOut("slow"); 
    $("#popupContact").fadeOut("slow"); 
} 

//centering popup 
function centerPopup() { 
    //request data for centering 
    var windowWidth = document.documentElement.clientWidth; 
    var windowHeight = document.documentElement.clientHeight; 
    var popupHeight = $("#popupContact").height(); 
    var popupWidth = $("#popupContact").width(); 
    //centering 
    $("#popupContact").css({ 
     "position": "absolute", 
     "top": windowHeight/2 - popupHeight/2, 
     "left": windowWidth/2 - popupWidth/2 
    }); 
    //only need force for IE6 

    $("#backgroundPopup").css({ 
     "height": windowHeight 
    }); 

} 

function no() { 
    return false; 
    disablePopup(); 
} 

function yea() { 
    $('#form1').submit(function() { 
     return true; 
    }) 
} 

$(function() { 
    $("#popupContactClose").bind('click', function() { 
     disablePopup(); 
    }); 
}); 

function yeah() { 
    $(this).bind('click', function (event) { 

     centerPopup(); 

     loadPopup(); 

    }); 
} 

...と次のマークアップ:

<body> 
    <form id="form1" runat="server"> 
    <asp:Button ID="btn1" runat="server" OnClientClick="yeah();" Text="Click me!" /> 
    <div id="popupContact"> 
     <a onclick="xClick()" id="popupContactClose">x</a> 
     <input type="submit" onclick="yea()" value="Yes" /> 
     <input type="button" onclick="no()" value="No" /> 
    </div> 
    <div id="backgroundPopup"> 
    </div> 
    </form> 
</body> 
</html> 

問題は、OnClientClickイベントがyea()を呼び出し、divが表示されてすぐに消えてページが返信されるという問題です。これはむしろ奇妙です。これで私を助けることができますか?前もって感謝します!

答えて

1

私はあなたがイベントを嗅ぐ必要があると思います。

onclick="yea();return false;" 

おそらくそれを実行します。

+1

これに答えようとした以前の人物にあなたが加えたものが与えられても、あなたが望むものはできないかもしれませんが。その場合は、おそらくyea()のjavascriptを介してフォームを提出する必要があります。 –

+0

私はあなたが正しいと思います。あなたがここで与えた解決策は有効ではありません。しかし、私のサーバー側のコードは実行されません..:/任意の提案? Btw、私の質問に答える時間を取ってくれてありがとうマーク – Dragan

+0

私は、一般的なプラクティスは関数yea(e){/ * user code */e.preventDefault();} onclick = "yea(event);だと思った –

関連する問題