簡體   English   中英

如何從HTML中的onclick調用ASP函數?

[英]How to call a ASP function from onclick in the HTML?

我的HTML中有3個鏈接。 當我單擊其中之一時,會話中的變量必須更改。 我怎樣才能做到這一點?

<div id="eng">
      <a href="#" onClick="setLanguage('en')";>
           <img id="eng_img" src="bandiera01.png" />
      </a>
 </div>
 <div id="rus">
      <a href="#" onclick="setLanguage('ru');">
           <img id="rus_img" src="bandiera02.png" />
      </a>
 </div>
 <div id="ted">
      <a href="#" onclick="setLanguage('de');">
           <img id="ted_img" src="bandiera03.png" />
      </a>
 </div>

setLanguage(txt)是一個JavaScript函數,但我想在ASP中使用它以將其保存在會話中。

您需要將信息發送到服務器,可以通過普通鏈接發布或通過ajax發送。 我認為在這種情況下,最好通過普通鏈接發送,例如:

<div id="eng">
      <a href="ChangeLanguage.asp?language=en">
           <img id="eng_img" src="bandiera01.png" /></a>
      </a>
 </div>
 <div id="rus">
      <a href="ChangeLanguage.asp?language=ru">
           <img id="rus_img" src="bandiera02.png" />
      </a>
 </div>
 <div id="ted">
      <a href="ChangeLanguage.asp?language=de">
           <img id="ted_img" src="bandiera03.png" />
      </a>
 </div>

在目標頁面中,您將獲得鏈接的“語言”信息。

您可以通過以下兩種方法解決此問題:

  1. 將您的鏈接變成提交按鈕,將它們放在表單中,提交頁面服務器端以管理語言更改業務邏輯。 這是經典的asp方法。 您必須重建頁面服務器端。

  2. setLanguage()將ajax調用激發到一個ASP頁上,以檢索本地化的資源。 成功后,資源將映射到DOM的相應元素中:可以將此邏輯設置為其他函數:

HTML

    <div class="lang">
          <a href="#" data-lang="en">en</a>
     </div>
     <div class="lang">
          <a href="#" data-lang="ru">ru</a>
     </div>
     <div class="lang">
          <a href="#" data-lang="de">de</a>
    </div>

腳本

    (function($){
        window.setLanguage = function(langCode){
            $.ajax({
              type: "GET",
              url: "myLanguageHandler.asp",
              data: { "languageCode": languageCode },
              async: true,
              error: function (req, status, message) {
                  //manage the error
              },
              success: function (data) {
                  mapPage(data);
              }
            });
            /*
             * for demo purpose only
             * console.log('Set language: ' + langCode);
             */
        };

        $('.lang a').bind('click', function(e){
            window.setLanguage($(e.target).attr('data-lang'));
            return false;
        });
    })(jQuery)

暫無
暫無

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

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