簡體   English   中英

火 OnClick 取決於 OnClientClick 的結果

[英]fire OnClick depends on the result of OnClientClick

我有一些遺留代碼,一些在 JavaScript 中實現,一些在 C# 中實現。 現在我必須編寫一段代碼來決定是否觸發 OnClick 取決於一些條件。 我想通過檢查 OnClientClick 中的條件來實現它。 我嘗試了一些來自互聯網的方法,但它們沒有奏效。 (我是 JavaScript 和 C# 的新手,所以我不是很了解解決方案,例如設置 OnClientClick="return confirm ('這將刪除報告。繼續?'); return false; ",不它總是在執行“return false”之前返回?”)

我的代碼如下

aspx file:
<div id="searchBtn"><asp:LinkButton ID="SearchButton" OnClientClick="return SetInputString(); return false;" OnClick="SearchClick" ValidationGroup="search"  runat="server"><img src="images/btn_search.jpg" alt="検索" /></asp:LinkButton></div>

js file:
function SetInputString() {
    var textbox = document.getElementById("textForm");
    var inputString = document.getElementById("inputString");
    clearNonInteractiveTimer();
    inputString.value = textbox.value;

    if (/^[0-9]{6}$/.test(inputString.value)) {
        EvaluateEnteredSearch(inputString.value);
        return false;
    } else {
        return true;
    }
}

cs file:
public void SearchClick(object sender, EventArgs e){
...
}

Confirm是 Javascript 中“內置”的方法。

此方法是模態的:它停止執行腳本並阻止用戶與頁面的 rest 交互,直到 window 關閉。

所以不,output 將取決於用戶的選擇。

return false表示您正在取消按下按鈕的默認操作。

有兩種方法可以告訴瀏覽器您要取消某些事件的默認操作,在這種情況下,取消以下鏈接:調用event.preventDefault ()或從處理程序 function return false 僅當您使用onevent屬性分配處理程序時,第二個才有效,如下所示:

<a href="//google.com" onclick="return false"> google </a>

或者像這樣:

<a href="//google.com"> google </a>

<script>
document.getElementsByTagName ('a') [0] .onclick = function () {
  return false;
}
</script>

此處的更多信息:如何撤消默認操作


現在,你的代碼呢。

OnClick事件向服務器發送請求並執行操作作為響應。

OnClientClick與我們在 Javascript 中編寫的 onclick function 非常相似......也就是說,它在客戶端執行語句而不將它們發送到服務器。

SetInputString將首先被調用,如果為true - SearchClick將被調用

另外,這里有更多信息: 何時調用服務器 onClick 與 OnClientClick

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM