使用bind/on更改如何显示行

With bind/on change how to show a Row

本文关键字:显示 何显示 bind on 使用      更新时间:2023-09-26

我有一个使用coldfusion的表单,目前正在使用绑定来生成值。当用户从下拉菜单中进行选择后,将自动生成一个由表生成的值"Y"或"N"。我需要做的是使用那个值,在这个例子中如果value是'Y'来显示更多要回答的问题。下面是当前代码的样子。

<td>Select Category:
  <cfselect name="catdesc"
  title="Select category to generate related services"
  bind="cfc:servicetype2.cat_description()"
  bindonload="true"/><br />
</td>
</tr>                                               
<tr id="serv_ty2" style="display: inline;">
  <td></td>
  <td>Select Service:
  <cfselect name="service_type"
  bind="cfc:servicetype2.getServiceType2({catdesc})"
  bindonload="false"/></td>
</tr>
<tr id="lr_verify" style="display: inline;">
  <td></td>
  <td>Labor Relations Required:
  <cfinput name="lr_needed" <!---
    onchange="document.getElementById('lr_question').style.display = (this.selectedIndex == Y) ? 'inline' : 'none'"--->
    bind="cfc:servicetype2.getLR({service_type})"
    onchange="editLR()"
    bindonload="false"/></td>
</tr>

这里是我想显示的附加问题,如果Y生成

<TR id="lr_question" name="lr_question" style="display: none;">
  <td align="left" nowrap>nbsp;<b>Additional Question:</b><br>(Hold Ctrl to select multiple)</td>
  <td align="left">Question:<br><br>
  <select id="lr_quest" name="lr_quest" multiple="multiple" required="NO" size="5">
    <option name="abc" id="abc">
    Choice 1</option>
    <option name="abc2" id="abc2">
    Choice 2</option>
  </select>

从我的研究,我尝试了两个解决方案,但没有工作,我假设我有不正确的语法或我的想法是正确的。

下面是尝试java函数:

function editLR()
{
  // if 'Y' then additional questions for service type should show
  var lrshow = document.getElementById("lr_needed");
  if( lrshow == 'Y' ) {
    lr_question.style.display = "inline";           
  }
  else if ( lrshow == 'N' ) {
    lr_question.style.display = "none"; 
  }
  else if ( lrshow == '' ) {
    lr_question.style.display = "none";
  }
}

如果你有什么建议,请告诉我。如果我没有解释清楚,我很抱歉。提前感谢任何帮助,我仍然是javascript和coldfusion的新手,所以学习所有可用的元素。

开始,你有这样的:

var lrshow = document.getElementById("lr_needed");

在它后面加上这行,看看会得到什么。

alert("lrshow is " + lrshow);

然后看看这是否有什么不同:

var lrshow = document.getElementById("lr_needed").value;
alert("lrshow is " + lrshow);