如何在html标记中使用javascript变量

如何在html标记中使用javascript变量,javascript,html,Javascript,Html,我在这里有一个表单,有两个字段,一个是搜索,另一个是选项,当我从搜索字段中选择任何值时,选项字段的值将发生变化。第二个字段的值不同,datalist定义为datalist1,datalist2,datalist3…..我希望第二个字段的List属性中给出的值与java脚本中的变量值相同。我尝试了以下代码,但该代码没有给出任何输出 函数随机(){ var a=document.getElementById('search').value; 如果(a==“样本ID”){ var datalist

我在这里有一个表单,有两个字段,一个是搜索,另一个是选项,当我从搜索字段中选择任何值时,选项字段的值将发生变化。第二个字段的值不同,datalist定义为datalist1,datalist2,datalist3…..我希望第二个字段的List属性中给出的值与java脚本中的变量值相同。我尝试了以下代码,但该代码没有给出任何输出


函数随机(){
var a=document.getElementById('search').value;
如果(a==“样本ID”){
var datalist=datalist1;
}如果(a==“贷款”){
var datalist=datalist1;
}else if(a==“用户”){
var datalist=datalist3;
}如果(a==“从属关系”){
var datalist=datalist4;
}否则如果(a==“状态”){
var datalist=datalist5;
}否则如果(a==“btr”){
var datalist=datalist6;
}else if(a==“类型”){
var datalist=datalist7;
}
document.getElementById('option').innerHTML=datalist;
}

搜寻-
选择类型
样本ID
设施
用户名
附属
地位
BTR
样本类型
日期
选项
/>

使用value而不是innerHTML

document.getElementById('option').value= datalist;

这是你需要做的

  • 在数据列表的ID周围使用引号
  • 使用输入的列表属性的setAttribute
  • 函数随机(){
    var a=document.getElementById('search')。值,
    datalist=“datalist1”;
    如果(a==“样本ID”){
    datalist=“datalist1”;
    }如果(a==“贷款”){
    datalist=“datalist1”;
    }else if(a==“用户”){
    datalist=“datalist2”;
    }如果(a==“从属关系”){
    datalist=“datalist3”;
    }否则如果(a==“状态”){
    datalist=“datalist1”;
    }否则如果(a==“btr”){
    datalist=“datalist2”;
    }else if(a==“类型”){
    datalist=“datalist3”;
    }
    const inp=document.getElementById('option');
    inp.value=“”;
    inp.setAttribute(“列表”,数据列表)
    }
    
    搜寻-
    选择类型
    样本ID
    设施
    用户名
    附属
    地位
    BTR
    样本类型
    日期
    选项
    
    我认为您要做的是根据select元素中的选定值为“option”输入分配一个数据列表,类似于以下OP的简化版本:

    //Select是对Select元素的引用,并且
    //是从侦听器传递的
    函数随机(选择){
    //将选择值映射到要显示的列表的id
    让map={'sampleid':'datalist1',
    “设施”:“数据列表2”,
    “用户”:“数据列表3”
    };
    //获取选项输入
    let option=document.getElementById('option');
    //清除值
    option.value='';
    //分配适当的列表
    option.setAttribute('list',map[select.value]);
    }
    
    搜寻-
    选择类型
    样本ID
    设施
    使用者
    
    我做了一个片段。请使用datalist mock和大写字母F(这)更新代码,您的意思是
    var datalist=document.getElementById(“datalist1”)
    @mplungjani我希望varr datalist的值在表单选项列表值的第二个字段中,在这个问题中不需要PHP。这是纯JavaScript相关的。这也没有意义,因为没有id为datalist的datalist,它在选项字段[OBJECT HTMLDATALISTELEMENT]中给出以下输出。请确保datalist是字符串。看起来您正在填充数据列表的函数中形成对象。这与我的答案相同,只是map@mplungjan-英雄所见略同。:-)你在我写的时候发的。您还需要在设置列表属性之前清除输入值,否则,如果用户更改所选选项,则数据列表似乎分配不正确。请参阅更新-我在更改列表时清除字段