Javascript 对输入元素中的每个更改运行函数:JQuery

Javascript 对输入元素中的每个更改运行函数:JQuery,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个叫做wizard的表单。每次更改任何输入元素时,我都希望Javascript函数运行并计算一些内容。我有以下资料: // update hidden field "channels" in wizard based on servers/cores $('form#wizard select[name=servers], form#wizard select[name=cores]').change(function() { var channels = parseInt($('for

我有一个叫做wizard的表单。每次更改任何输入元素时,我都希望Javascript函数运行并计算一些内容。我有以下资料:

// update hidden field "channels" in wizard based on servers/cores
$('form#wizard select[name=servers], form#wizard select[name=cores]').change(function() {
 var channels = parseInt($('form#wizard select[name=servers]').val()) * parseInt($('form#wizard select[name=cores]').val());
 $('#yellow').val(channels);
 $('#yellow').change();
 alert(channels);
});
以上内容围绕:

$(document).ready(function() {
以上这些似乎并不是我想要的。我是否必须特别让每个输入字段都有一个onchnage操作

谢谢大家

编辑 对不起,我是说选择元素

<form id="wizard">
Number of server(s) you are thinking of purchasing licenses for:
<select style="margin-left: 10px; font-size:15px; padding:1px;" name="servers" id="servers"><option value="1" selected="">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option></select>
server(s) <br/><br/> Each server will have: <select  style="font-size:15px; padding:1px;" name="cores" id="cores"><option style="margin-left: 10px;" value="115">a single core CPU</option><option value="230" selected="">a dual core CPU</option><option value="500">a quad core CPU</option><option value="960">an octo core CPU</option></select><br/><br/> And will be running: <select style="margin-left: 10px; font-size:15px; padding:1px; margin-right: 10px;" name="app" id="app"><option value="Asterisk" selected="">Asterisk®</option><option value="FreeSWITCH">FreeSWITCH</option></select> On
<select style="margin-left: 10px; font-size:15px; padding:1px;" name="cores" id="cores"><option value="Linux">Linux</option><option value="Solaris 10">Solaris 10</option><option value="OpenSolaris">OpenSolaris</option></select>
<br /><br />
</form>
编辑2 如果此表单位于隐藏的div中,是否有问题?我在抓救命稻草,我不知道怎么解决这个问题

当我从显示中删除:无时,由于某些原因它会工作!顺便说一句,我正在使用fancybox jquery插件

什么是黄色

$('form#wizard select').change(function() {
  var channels = (parseInt($('form#wizard select[name=servers]').val(), 10) *
    parseInt($('form#wizard select[name=cores]:first').val(), 10));
  $('#yellow').val(channels);
  $('#yellow').change();
  alert(channels);
});
您有两个select的名称和核心ID,这可能是问题所在。我在parseInt中添加了10,这通常是人们想要的,没有它,parseInt可以做奇怪的事情。yellow是否还附带了更改事件?如果没有,您不需要触发更改,即使如此,设置其值也会引发更改事件。

什么是黄色

$('form#wizard select').change(function() {
  var channels = (parseInt($('form#wizard select[name=servers]').val(), 10) *
    parseInt($('form#wizard select[name=cores]:first').val(), 10));
  $('#yellow').val(channels);
  $('#yellow').change();
  alert(channels);
});

您有两个select的名称和核心ID,这可能是问题所在。我在parseInt中添加了10,这通常是人们想要的,没有它,parseInt可以做奇怪的事情。yellow是否还附带了更改事件?如果不需要,则不需要触发更改,即使这样,设置其值也会引发更改事件。

完成-不确定这会有什么帮助?很明显,您在元素上使用的是id和名称。由于您已经按名称引用了输入元素,您也可以按id引用它们,因为它显然更快。对不起,我有点慢。但这会解决问题吗?还是建议加快执行?谢天谢地,我有两个选择题为“核心”,对吗?我做了那个改变,但他妈的没有改变!完成-不确定这会有什么帮助?首先,很明显,您在元素上使用的是id和名称。由于您已经按名称引用了输入元素,您也可以按id引用它们,因为它显然更快。对不起,我有点慢。但这会解决问题吗?还是建议加快执行?谢天谢地,我有两个选择题为“核心”,对吗?我做了那个改变,但他妈的没有改变!黄色只是高亮显示为黄色的跨度元素。我只是想让计算结果显示出来,不,上面没有变化事件。将测试您的建议。好的,我更改了ID,但此警报尚未显示:你能在不计算服务器和核心的情况下得到它们的值吗?即警报$'formwizard select[name=servers]'。val;警报$'formwizard select[name=cores]'。val;黄色只是高亮显示为黄色的跨度元素。我只是想让计算结果显示出来,不,上面没有变化事件。将测试您的建议。好的,我更改了ID,但此警报尚未显示:你能在不计算服务器和核心的情况下得到它们的值吗?即警报$'formwizard select[name=servers]'。val;警报$'formwizard select[name=cores]'。val;