如何在javascript函数中避免页面刷新?

时间:2011-11-17 11:32:34

标签: javascript asp.net html

我在使用asp.net创建的网页中使用了javascript函数。我在标签的click事件上调用了该函数。但是在那个页面中,我已经处理了其他事件,当我正在执行任何事件时,每次我的页面都会重新加载。我想点击标签时应该调用java脚本函数。

我在html中调用了以下函数 -

<a id="displayText" href="JavaScript:void(0)" onclick="javascript:toggle5('toggleText', 'displayText');">More</a>

我的javascript函数是 -

function toggle5(showHideDiv, switchTag) {

           var ele = document.getElementById(showHideDiv);
           var imageEle = document.getElementById(switchTag);
           if (ele.style.display == "block") {
               ele.style.display = "none";
               imageEle.innerHTML = 'More'; //<img src="../images/more.JPG" style="height:18px;width:18px;border:none;">';
           }
           else {
               ele.style.display = "block";
               imageEle.innerHTML = 'Less'; //<img src="../images/less.JPG" style="height:18px;width:18px;border:none;">';
           }
   }

我使用上面的函数隐藏在html标签下面---

<div id="toggleText" style="display:none;height:100%;width:100%;">
</div>

在点击事件中执行的代码 -

protected void btnReset_Click(object sender, EventArgs e)
    {
        txtBrought.Text = "";
        txtCall.Text = "";
        txtNoCall.Text = "";
        txtNoSales.Text = "";
        txtSearchData.Text = "";
        ddlMD.SelectedIndex = 0;
        ddlCEO.SelectedIndex = 0;
        ddlCRM.SelectedIndex = 0;
        ddlRH.SelectedIndex = 0;
        chkBrought.Checked = false;
        chkCall.Checked = false;
        chkInSalesPlan.Checked = false;
        chkNoCall.Checked = false;
        chkNoSales.Checked = false;
        chkOSPending.Checked = false;
        chkOutSalesPlan.Checked = false;
        txtBrought.Enabled =false;
        txtCall.Enabled = false;
        txtNoCall.Enabled = false;
        txtNoSales.Enabled = false;
    }

我在使用javascript函数隐藏的标记中放置了不同的asp.net控件。我使用了asp.net控件的事件。其中一个控件是asp.net按钮。

怎么做?

2 个答案:

答案 0 :(得分:0)

嗯,我不确定你的问题,但我有一个提示。我认为你的事件正在冒泡,因此它会导致触发默认事件,例如<a>标记会做什么,ergo:refresh。所以你需要停止这个冒泡:

$('a').bind('click', function(e){

  e.stopPropagation();
  e.preventDefault();
  // CODE YOU WANNA DO

});

答案 1 :(得分:0)

我尝试了上面的代码,我没有得到页面刷新,它对我来说很好,

浏览器测试:IE8,fireFox3