如何在OnClientClick的处理程序中访问按钮的文本.相当于“;这个“;

本文关键字:按钮 文本 相当于 这个 访问 OnClientClick 处理 程序 | 更新日期: 2023-09-27 18:23:42

我使用这样的jquery分配点击处理程序,以切换按钮的功能

$(function () {
$(".ButtonReorder").click(
        function () {
            //USER STARTS REORDERING - BUTTON CHANGES TO "SAVE" AND "CANCEL" BUTTON APPEARS
            if ($(this).attr("value") === "Reorder Images") {
                ...
            }
            //USER SUBMITS NEW ORDER - REORDERING GETS DISABLED
            else {
                ...
            }
        }
    );

现在,我们正在从html文本控件更改为ASP.Net控件。它在回邮,这是我们不想要的。我看到有人在OnClientClick函数中提到return false。因此,我没有使用jQuery,而是尝试通过OnClientClick分配JS函数,就像这样,但我意识到这个关键字现在不指向按钮。我该怎么称呼它?

//背后的代码

                Button reorderButton = new Button();
                reorderButton.CssClass = "ButtonReorder";
                reorderButton.Text = "Reorder Images";
                reorderButton.OnClientClick = "return reorderClick();";

//JS代码

function reorderClick() {
//USER STARTS REORDERING - BUTTON CHANGES TO "SAVE" AND "CANCEL" BUTTON APPEARS
if ($(this).attr("Text") === "Reorder Images") {
    $(this).attr("value", "Save New Order");    //change button to show "Save New Order" from "Reorder Images" 
     ...
     return false; //starting reorder, don't want to submit;
}
//USER SUBMITS NEW ORDER - REORDERING GETS DISABLED
else {
    $(this).attr("value", "Reorder Images");    //set button back to original "Reorder Images" from "Save New Order"
    ...
    return true; //done reordering, submit;
}

}

但这并不是指按钮。OnClientClick是否将操作对象传递给处理程序?有办法通过吗?

谢谢,Ozgur Ozturk

如何在OnClientClick的处理程序中访问按钮的文本.相当于“;这个“;

我是这样想的:

reorderButton.OnClientClick = "return reorderClick(this);";
function reorderClick(obj) {
//USER STARTS REORDERING - BUTTON CHANGES TO "SAVE" AND "CANCEL" BUTTON APPEARS
if ($(obj).attr("Text") === "Reorder Images") {
   }
}

尝试将this作为参数

"return reorderClick(this);";
function reorderClick(elem) {
if ($(elem).attr("Text") === "Reorder Images") {