1

ボタンの機能を切り替えるために、このような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 はアクションのオブジェクトをハンドラーに渡しませんか? 渡す方法はありますか?

ありがとう、オズグル・オズターク

4

2 に答える 2

1

私は次のように考えています。

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") {
   }
}
于 2013-07-16T22:36:51.773 に答える
0

これを引数として渡してみてください

"return reorderClick(this);";

function reorderClick(elem) {
if ($(elem).attr("Text") === "Reorder Images") {
于 2013-07-16T22:36:59.883 に答える