亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使函數返回 false,ONCLientClick() 也會回發

即使函數返回 false,ONCLientClick() 也會回發

牛魔王的故事 2021-12-23 16:18:22
我正在嘗試使 ASP:Button 不會回傳和刷新頁面。我已將 OnClientClick 設置為返回 false 作為函數的結果。HTML -                        <asp:Button ID="englishButton" runat="server" Text="English" OnClientClick="return englishClick();" />JS -function englishClick() {            russianButton.style.backgroundColor = "WhiteSmoke";            englishButton.style.backgroundColor = "teal";            hebrewButton.style.backgroundColor = "WhiteSmoke";            englishTable.style.visibility = "visible";            hebrewTable.style.visibility = "hidden";            russianTable.style.visibility = "hidden";            return false;        }樣式發生更改,但隨后頁面會立即刷新并且樣式返回其原始狀態。
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

這是將 WebForms 與 javascript 結合使用時的常見誤解。在 javascript pure(html 和 javascript)中,當您“返回 false”時,這意味著您不希望執行該操作。所以如果你寫

<input type="submit" onclick="return false;" />

這意味著提交按鈕將不起作用。在純 webforms 中,您正在一個非常高的級別(主要是在服務器端)工作,并且每次回發都會重新呈現整個頁面。即使你只是改變了一些微小的東西 - 整個 html+css+javascript 會來回重新計算和重新渲染。無賴,?。?/p>

這是一個典型的混合意圖案例。你需要決定你在做什么 - 如果純 html + java-script 是你的意圖使用(偽代碼):

<input type='button' onclick='englishButton' value='English' />

甚至更好(仍然是偽代碼,但 html5 偽代碼)

<button onclick='return englishButton();'>English</button>

如果 webforms 是你的東西 - 堅持 - 在服務器端進行操作并保持優雅、簡單和快速呈現。如果您不關心網絡流量和花費太多開銷,而是希望一切都在短時間內啟動并運行,那么 Webforms 也很有意義。

但是您可能最好選擇其中一種而不是混合這兩種方法。


查看完整回答
反對 回復 2021-12-23
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

如果您不希望它與服務器交互,為什么不使用純 HTML 按鈕呢?這里不需要 ASP 控件。


此外,我始終建議使用使用addEventListener的不顯眼的事件處理程序,因為它比在 HTML 中使用內聯事件屬性更具可讀性和可維護性。


HTML:


<button type="button" id="englishButton">English</button>

JavaScript:


document.getElementById("englishButton").addEventListener("click", englishClick);


function englishClick() {

  russianButton.style.backgroundColor = "WhiteSmoke";

  englishButton.style.backgroundColor = "teal";

  hebrewButton.style.backgroundColor = "WhiteSmoke";

  englishTable.style.visibility = "visible";

  hebrewTable.style.visibility = "hidden";

  russianTable.style.visibility = "hidden";

}


查看完整回答
反對 回復 2021-12-23
  • 2 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號