Javascript下拉菜单计算
我的代码有点问题。我正试图从下拉菜单中进行计算,然后它会变成一个文本框。我已经做了好几天了,试图找出它,并在谷歌上搜索编写函数的方法。有谁能帮助我或给我建议如何处理这个问题吗Javascript下拉菜单计算,javascript,options,Javascript,Options,我的代码有点问题。我正试图从下拉菜单中进行计算,然后它会变成一个文本框。我已经做了好几天了,试图找出它,并在谷歌上搜索编写函数的方法。有谁能帮助我或给我建议如何处理这个问题吗 function numGuest() { var a = document.getElementById("guests"); if(a.options[a.selectedIndex].value == "0") { registration.banq.value = "0";
function numGuest()
{
var a = document.getElementById("guests");
if(a.options[a.selectedIndex].value == "0")
{
registration.banq.value = "0";
}
else if(a.options[a.selectedIndex].value == "1")
{
registration.banq.value = "30";
}
}
0
1.
2.
3.
4.
5.
为什么id=banq(文本字段)被禁用
要启用:
document.getElementById('banq')。disabled=false
对于该值,请选择:
function numGuest(){
var theGuestValForCalc = 0;
var theFinalResult = 0;
theGuestValForCalc = document.getElementById('guests').options[document.getElementById('guests').selectedIndex].value;
theFinalResult = theGuestValForCalc * 10 // or some value, calculation, etc.
document.getElementById('banq').innerHTML = theFinalResult;
// return theFinalResult;
}未定义注册。您需要以与guests元素相同的方式获取文本输入元素。此外,onChange侦听器应该附加到选择菜单,而不是文本区域
<html>
<script>
function numGuest()
{
var banq = document.getElementById('banq');
var a = document.getElementById("guests");
if(a.options[a.selectedIndex].value == "0")
{
banq.value = "0";
}
else if(a.options[a.selectedIndex].value == "1")
{
banq.value = "1";
}
}
</script>
<select id="guests" name="guests" onChange="numGuest()" >
<option value="0">0</option>
<option value="1">1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<input type="text" id="banq" name="banq" disabled />
</html>
函数numGuest()
{
var banq=document.getElementById('banq');
var a=document.getElementById(“来宾”);
如果(a.options[a.selectedIndex].value==“0”)
{
banq.value=“0”;
}
else if(a.options[a.selectedIndex].value==“1”)
{
banq.value=“1”;
}
}
0
1.
2.
3.
4.
5.
在您的代码中:
> <input type="text" id="banq" name="banq" onChange="numGuest()" disabled />
var form = element.form;
var banq = form.banq;
var a = form.guests; // or element
元素将是对其处理程序调用函数的元素的引用
由于您说过您的控件位于表单中,并且具有名称的表单控件是其所在表单的命名属性,因此您可以简化代码:
> <input type="text" id="banq" name="banq" onChange="numGuest()" disabled />
var form = element.form;
var banq = form.banq;
var a = form.guests; // or element
如果选定选项具有值(请参见下面的注释),则可以直接使用select元素的value属性:
if (a.value == "0") {
banq.value = "0";
} else if (a.value == "1") {
banq.value = "1";
}
你完成了
注:
select.options[select.selectedIndex].text
。但是最好的办法是总是给选项一个值,这样你就可以得到select元素的值什么是注册?什么是银行?当文本输入的值更改时,还是当下拉列表的值更改时,您希望运行
numGuest
函数?注册是表单id和名称,banq是文本框/输入id和名称。我希望在我从下拉菜单中选择该选项时运行该函数。期望元素ID和名称为全局变量是一种不好的做法,这是早期web上的IE功能,被其他浏览器复制以实现兼容性,应该被淘汰。非常感谢!我没有意识到我把onchange放在了输入上而不是select标签上。感谢您确认某些代码是正确的。有太多不同的编码方法,我很困惑。它被禁用是因为OP想要显示所选选项的值。不知道为什么,因为选项是可见的,禁用的元素不会成功。也许OP想要一个字段。
if (a.value == "0") {
banq.value = "0";
} else if (a.value == "1") {
banq.value = "1";
}