0

我正在使用 JavaScript 根据从下拉菜单中选择的错误状态,将特定的默认文本动态输出到 Bugzilla 中的附加注释框。我曾尝试使用“bug.bug_status”,但这只会在提交页面时发生变化。我发现填充下拉菜单的变量是“bug_status.name”,但是当我尝试使用这个变量时,它似乎没有被识别。有没有人提出任何可能导致问题的建议?有没有人试过这个?

以下代码已放置在旋钮.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 树需要用 javascript 而不是 Template Toolkit 编写。

所以,像这样:

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 回答