当前位置: 首页 > 知识库问答 >
问题:

如何在带有条件语句的javascript函数中使用select onchange返回html代码

乔望
2023-03-14

通过选择必须返回html标记的选项

<select onchange="getval(this);">
    <option value="none" selected>none</option>
    <option value="1">Blood Group</option>
    <option value="2">Donor name</option>
</select>



<script>
function getval(sel)
{
 if (sel == 1) {
        return '<label for="Bloodgroup">Blood Group</label>
         <select name="bg"  class="form-control" id="exampleFormControlSelect1">
           <option value="O+" selected>O+</option>
           <option value="O-">O-</option>
           <option value="A+">A+</option>
           <option value="A-">A-</option>
         </select>';
    }else if (sel == 2) {
        return ' <label for="name">Name</label>
         <input type="text" name = "name" class="form-control" required>';
   }
}
</script>

如果是捐赠者名称,则为else

共有1个答案

梅玉堂
2023-03-14

您的代码中有几个问题。首先,您传递给getVal()函数的参数是select元素引用,而不是选定的值,因此if条件需要从参数中读取value属性。

此外,函数中的return语句不会单独执行任何操作,因为从函数返回的值不会执行任何操作。要将字符串中的HTML添加到DOM,您需要调用目标元素的函数或属性来追加内容。在下面的示例中,分别使用QuerySelectorInnerHTML完成:

null

let content = document.querySelector('#content');

function getval(el) {
  if (el.value == 1) {
    content.innerHTML = `<label for="Bloodgroup">Blood Group</label>
         <select name="bg"  class="form-control" id="exampleFormControlSelect1">
           <option value="O+" selected>O+</option>
           <option value="O-">O-</option>
           <option value="A+">A+</option>
           <option value="A-">A-</option>
         </select>`;
  } else if (el.value == 2) {
    content.innerHTML = `<label for="name">Name</label>
          <input type="text" name = "name" class="form-control" required>`;
  }
}
<select onchange="getval(this);">
  <option value="none" selected>none</option>
  <option value="1">Blood Group</option>
  <option value="2">Donor name</option>
</select>

<div id="content"></div>
 类似资料:
  • 问题内容: 这是问题的简化:我有一个看起来像这样的选择: 并返回的数据快照看起来像这样 我想做的是,如果工作组是内部的,则选择不显示受让人的名称。而是显示工作流。 因此,例如,我想要实现的结果将是这样的: 我希望这是有道理的?基本上是一个条件选择,可以检测某个列是否包含某个值,然后用[whatever]替换另一个列的值。 提前致谢! 编辑我想实现这样的事情: 问题答案: 您没有提到您的DBMS,但

  • 这是我的代码行,我得到一条警告:“函数返回non void时没有返回语句警告”,我将total声明为:static int total; 有什么建议我如何摆脱警告?

  • 相当新的反应,我相信这很容易,但我正在尝试转换: 转换成单个返回语句。 基本上是替换

  • 我有一个函数,它调用一些服务并返回响应。如果响应为FALSE,它将等待1秒再次询问服务(然后可能返回TRUE)。 如何调用我的函数“checkService()”一次,并获得真正的值?(第一次或第二次尝试,由函数决定)我在函数内设置了RET值,但函数总是返回第一次RET,因为setTimeout是异步的。 换句话说,我需要一些“睡眠”技巧,或者任何解决方案(也可能是jQuery)。

  • 我一直在找这样的东西,但我找不到,所以就来了。 一些背景 我使用opencv从视频文件中检索帧。通常人们会无休止地循环这样做: 或 现在我想检索所有帧并在没有更多帧时退出循环。然而,我在python中的技能还不够强,无法做我想做的事情。 我想知道的是 函数(或方法,我不知道它们在python中是如何调用的)返回一个元组:首先代表操作成功,其次代表返回的帧。当元组的第一个元素为false时,我想打破

  • 我正在使用返回true false的方法(例如方法containsKey of MutableList)。由于函数是用java写的,Kotlin把返回类型称为Boolean?这就是我得到一个编译错误的原因:“必需:布尔,发现:布尔?”.我必须说在某些情况下(不知道为什么)使用这个方法是可以的,有时它会返回上面的错误。有人能猜到是什么原因吗? 我的代码: 如果编译了第一个,则第二个会出错: 布尔类型