Memos About Salesforce

Salesforceにハマってたこと!

HTMLタグ 値をクラスにパス actionfuntion

SalesforceのV.Fで画面を作成する時に
たまにHTMLタグしな使わないとか、一部HTMLタグの場合あるか思います。
しかしHTMLタグで書いたコードはどうやって
コントローラに渡して処理するの?って悩んだこと、あるいは悩んでいますか

今回、このV.F. ~ classでそのやりとり方法を共有します。どうぞよろしくお願いします!

  • この記事の目次
    • サンプルクラス
    • サンプルページ

サンプルクラス

 public List<String> strSearchList {set;get;}
 public String selectedValue {set;get;}

 // VFのaction functionのaction属性に設定するメソッド
 public void setParam(){
     //デバッグで値を確認できる
    System.debug('**** selectedValue—>' + this. selectedValue);
 
}

サンプルページ

 function getHtmlTagValue(){
      var value = getElementById('IDTextInput').value;
      // action functionを呼び出し、パラメータは引数に該当する、nameは関数名に該当する
      setParam(value);
      
}


<td>
<input type="select" 
     value="{!strSearchList}" 
     placeholder="Search Knowldege" 
     id="IDTextInput"/>
 </td>

<apex:actionFunction action="{!setParam}" name="setParam">
    <apex:param name="yourVariable" value="" assignTo="{!selectedValue}"/>
</apex:actionFunction>
 ||<
 

解釈:
V.F.内に何が原因でHTMLタグを使わなくちゃの場合、PageのFormのタグに入れた値をコントローラに渡すには基本、js・action functionでやる
こんな時に

Jsの役割はhtmlのgetElementByIdで取りたいタグの値を取る

Action functionに設定したパラメータに渡す