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