0

私はjsでフォームを作成するのが初めてです。少しのコードをコピーして適用し、選択したラジオ ボタンに応じてフィールドがポップアップするようにしました。これは 2 つのラジオ ボタンでうまく機能しますが、いくつか (5 つ以上) を含める必要があり、変更のたびにフィールドをリセットしたいという問題があります。

追加のコードを入力してすべてのフィールドを「onchange」にリセットできると思っていましたが、このコードを機能させることができません...使用するためにコピーして変更したものは次のとおりです。

設計どおりの2つのボタンでうまく機能します:

{
  toggleSelectionFields: function() {
      var isLaptop = ca_fdIsSelectRadio('showhide','group','short');
      if (isLaptop) {
        ca_fdHideField('showhide','longfields');
        ca_fdShowField('showhide','shortfields');
      } else {
        ca_fdHideField('showhide','shortfields');
        ca_fdShowField('showhide','longfields');
      }
    }
}

これが私がやろうとしたことです:

{
    toggleSelectionFields: function() {
        Var discovery = ca_fdIsSelectRadio('phone','deskphone4610','selectproblem','SelectIssue','discovery');
        Var headset = ca_fdIsSelectRadio('phone','deskphone4610','selectproblem','SelectIssue','headset');
        Var fac = ca_fdIsSelectRadio('phone','deskphone4610','selectproblem','SelectIssue','feature');
        Var calls = ca_fdIsSelectRadio('phone','deskphone4610','selectproblem','SelectIssue','calls');
        if (discovery) 
        {ca_fdShowField('phone','deskphone4610','selectproblem','discovermode')}
        if (headset)
        {ca_fdShowField('phone','deskphone4610','selectproblem','headset')} 
        if (fac)
        {ca_fdShowField('phone','deskphone4610','selectproblem','feature')}
        if (calls)
        {ca_fdShowField('phone','deskphone4610','selectproblem','calls')}
        }
    }
}
4

1 に答える 1

1

これは JavaScript に関する質問 (Java ではなく) であり、特定のフレームワーク (CA Service Catalog) に関連しているようです。そのため、特定の CA 機能を使用する方法に関する質問は、 CA Service Management のグローバル ユーザー コミュニティメッセージ ボードで回答するのが最も適切でしょう。

ただし、一般的なロジック/JavaScript の質問として、表示したいフィールドを表示するだけでなく、表示したくないフィールドを非表示にする必要があります。ca_fdHideField最初の例では、フィールドの 1 つのセットを非表示にしてから、もう 1 つのフィールドを表示するように呼び出していることに注意してくださいca_fdShowField。多くのコードを複製したくない場合は、ifステートメントの前にそれらをすべて非表示にしてから、選択したラジオ ボタンに対応するものだけを表示できます。

ca_fdHideField(...)
ca_fdHideField(...)
...
if (discovery) {
...
}

于 2013-09-12T19:06:55.863 に答える