0

ドロップダウン メニューから選択したバグ ステータスに基づいて、特定のデフォルト テキストを Bugzilla の追加コメント ボックスに動的に出力するために JavaScript を使用しています。「bug.bug_status」を使用してみましたが、これはページの送信時にのみ変更されます。ドロップダウン メニューに入力する変数は「bug_status.name」ですが、この変数を使用しようとすると、認識されないようです。問題の原因となっている可能性のある提案はありますか? 誰もこれを試したことがありますか?

次のコードは、nob.html.tmpl ファイルの先頭に配置されています。

[% PROCESS global/variables.none.tmpl %]
[% # Output a specific default content in the comments box depending on bug status. %]
<script type="text/javascript">
<!--
var messages = ['Message 0', 'Message 1', 'Message 2', 'Message 3', 'Message 4',    'Message 5', 'Message 6'];
function changetext(selectObj){
   var textAreaElement = document.getElementsByName("comment")[0];
[% IF (bug_status.name == "ASSIGNED") %]
   textAreaElement.value = messages[4];
[% ELSIF(bug_status.name == "RESOLVED") %]
   textAreaElement.value = messages[5];
[% ELSE %]
   var variable1 = 0;
   variable1 = bug_status.name
   textAreaElement.value = variable1;
[% END %]
4

1 に答える 1

0

あなたの他の質問に基づいて、ユーザーが新しいステータスを選択しているため、クライアント側でこれを変更したいようです。ただし、この質問で記述したコードは、クライアントが認識する前にサーバー側で変更されます。if/else ツリーは、Template Toolkit ではなく JavaScript で記述する必要があります。

したがって、次のようなものです。

function changetext(selectObj){
  var textAreaElement = document.getElementsByName("comment")[0];
  var currentStatus = document.getElementById("bug_status").value;

  if (currentStatus == "ASSIGNED") {
    textAreaElement.value = messages[4];
  } else if (currentStatus == "RESOLVED") {
    textAreaElement.value = messages[5];
  } else {
    textAreaElement.value = currentStatus;
  }
}
于 2010-07-15T12:50:15.467 に答える