使用 Javascript 函数根据所选选项设置 HTML 文本框值。但它似乎不起作用

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19859130/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 17:02:47  来源:igfitidea点击:

setting the HTML textbox value based on the selected option using Javascript function. But it seems to be not working

javascript

提问by user2968845

This is the javascript snippet which assigns the selected option value to a text box

这是将所选选项值分配给文本框的 javascript 片段

function check() {
 document.getElementById("inp").value=document.getElementById("id").value ;
} 

this is the actual html code

这是实际的 html 代码

<form>
<select id="id"  onSelect="check( );">
<option></option>
<option value=85.5>opt1</option>
<option value=95.5>opt2</option>
<option value=95.5>opt3</option>
<option value=95.5>opt4</option>
</select>
<input type=text name="input" id="inp">
</form>

I Hope am done right ,but still am not able to get my solution

我希望做得对,但仍然无法得到我的解决方案

回答by Nick

Here's your fix.

这是你的解决办法。

This one works

这个有效

I guess the summary of it is that you should change onSelect to onChange.

我想它的总结是你应该将 onSelect 更改为 onChange。

<script>
 function check() {
     document.getElementById("inp").value=document.getElementById("id").value;
    } 
 </script>
</head>
<body>
    <form>
        <select id="id"  onChange="check();">
        <option></option>
        <option value=85.5>opt1</option>
        <option value=95.5>opt2</option>
        <option value=95.5>opt3</option>
        <option value=95.5>opt4</option>
        </select>
    <input type=text name="input" id="inp" value="">
    </form>
</body>

回答by mplungjan

Assuming this html

假设这个 html

<select id="id">
  <option value="">Please select</option>
  <option value="85.5">opt1</option>
  <option value="95.5">opt2</option>
  <option value="95.5">opt3</option>
  <option value="95.5">opt4</option>
</select>

You can use unobtrusive JavaScript and add this to the head

您可以使用不显眼的 JavaScript 并将其添加到头部

Plain JS:

普通JS:

window.onload=function() { 
  document.getElementById("id").onchange=function() {     
    this.form.input.value=this.value; 
  }
}

Same in jQuery would be

同样在 jQuery 中

$(function() { 
  $("#id").on("change",function() { 
    $("#inp").val($(this).val()); 
  }); 
}); 

If you MUST do it inline, then

如果你必须做内联,那么

<select id="id" onchange="this.form.input.value=this.value;">

回答by MarsOne

You HTML has multiple issues as well as your javascript

您的 HTML 以及您的 javascript 有多个问题

Your formatted HTML

你的格式化 HTML

<form>
<select id="id" onChange="check();">
    <option></option>
    <option value="85.5">opt1</option>
    <option value="95.5">opt2</option>
    <option value="95.5">opt3</option>
    <option value="95.5">opt4</option>
</select>
<input type="text" name="input" id="inp" />
</form>

JS

JS

function check() {
    document.getElementById("inp").value = document.getElementById("id").value;
}

Working DEMO

工作演示

Also you should enclose you values like value="". Besides this no major issues

你也应该附上你的价值观,比如 value=""。除此之外没有大问题