2012-08-09 81 views
0

所以我有一個使用C#代碼和JavaScript代碼的Web應用程序。我的JavaScript代碼根據用戶輸入生成一些信息。一旦完成,它將使用ASP按鈕保存。附加到asp按鈕是一個客戶端點擊和點擊事件。 Javascript代碼驗證代碼並確保已創建的字符串有效。如果沒有錯誤消息發送到隱藏標籤。然後C#代碼檢查該標籤,如果它是空的(如果驗證沒有問題),它將執行C#代碼。如果它裏面有一個值,那麼來自隱藏標籤的錯誤消息將使用C#代碼傳遞給可見標籤並顯示給用戶。頁面重新加載時遇到問題。 ASP.NET

但是,如果錯誤消息顯示在頁面中自動重新加載(因爲它是一個按鈕點擊事件總是發生)。並且用戶輸入從屏幕清除。

有什麼辦法可以阻止頁面重新加載時顯示錯誤信息?

CODE

的Javascript:

if (goalnum > 0 && blocknum > 0 && playernum == 1 && goalnum == blocknum) { 


     mapsave = JSON.stringify(map); 
     document.getElementById('<%=mapsave.ClientID %>').value = mapsave; 

    } 
    else { 
     document.getElementById('<%=lblError.ClientID %>').value = "Your map must have one and only one player, one or more blocks, one or more goals and the number of blocks must match up with the number of goals"; 
    } 

C#

protected void btnSave_Click(object sender, EventArgs e) 
    { 
     if (mapsave.Value.ToString() == "") 
     { 
      lblResult.Text = lblError.Value; 
     } 
     else 
     { 
      AddNodeToXMLFile("filepath.xml", "TileMaps"); 
     } 

    } 

回答

1

return false點擊按鈕?如果不是,即使驗證失敗,新郵政也會觸發。

你可以發佈代碼嗎?

+0

我已經添加上面的代碼作爲編輯。正如你可以在JavaScript中看到的,我將地圖保存到名爲mapsave的標籤中,然後如果該標籤爲空,則顯示lblResult.Text。這是我想要顯示的錯誤消息,但不會重新加載頁面,因爲他們的信息將被重置。 – 2012-08-09 10:02:17

+0

啊,我剛剛意識到如何去做......在我的ASP按鈕中,我不得不將retun元素添加到我的onclientclick中。我必須添加返回false;到if語句上。現在它可以工作。謝謝 – 2012-08-09 10:12:49

+0

就是這樣!做得好 – 2012-08-09 10:13:39