JavaScript:onChange打印HTML表单值

JavaScript:onChange打印HTML表单值,javascript,forms,codeigniter,onchange,Javascript,Forms,Codeigniter,Onchange,一旦选中,我将尝试从表单下拉框(命名集)中回显所选值的值。目前,我运气不好。还要注意的是,我正在使用codeigniter,但我怀疑这将是一个问题 <head> <script type="text/javascript"> function set_boxes() { var TestVar = form.sets.value; alert("TestVar"); }

一旦选中,我将尝试从表单下拉框(命名集)中回显所选值的值。目前,我运气不好。还要注意的是,我正在使用codeigniter,但我怀疑这将是一个问题

<head>
    <script type="text/javascript">
        function set_boxes()
        {
            var TestVar = form.sets.value;
            alert("TestVar");
        }
    </script>
</head>

<h1>New Entry</h1>

<?php 

echo form_open('log/add_entry'); 

/*Weight Entry*/
echo form_label('Weight:', 'weight'); 
echo form_input('weight'); 

/*Weight Measurement*/
$measurementOptions = array('kg' => 'KG', 'lbs' => 'LBS');
echo form_dropdown('measurement', $measurementOptions, 'kg');

echo " - ";

/*Sets at Weight*/
echo form_label('Sets:', 'sets');
$setOptions = array('' => '', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', );
$js = 'onChange="set_boxes(this.form);"';
echo form_dropdown('sets', $setOptions, '', $js);

函数集_框()
{
var TestVar=form.sets.value;
警报(“TestVar”);
}
新条目

对于选择框,您不能只使用
.value
,它稍微复杂一点。这应该是您想要的:

var TestVar = form.sets.options[form.sets.selectedIndex].value;
有几种可能性:

您的函数及其调用不一致:

onChange="set_boxes(this.form)" // 1 argument

function set_boxes()            // 0 arguments
我想你想要的是:

function set_boxes(form)
这样,函数中的
表单
变量将等于预期的DOM对象:

var TestVar = form.sets.value;
另外,您的意思是警告字符串“TestVar”
?如果要提醒变量的值,只需删除引号:

alert(TestVar);
因此,请尝试一下:

function set_boxes(form)
{
    var TestVar = form.sets.value;
    alert(TestVar);
}