2011-09-07 88 views
-1

我试图从表单下拉框(命名集)中选择一个值后,将所选值的值回显出来。目前,我没有运气。还要注意我使用codeigniter,但我dout这将是问题。JavaScript:打印HTML表单值onChange

<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); 

回答

1

几个可能性:

你的功能和它的呼叫不符合对方:

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

function set_boxes()   // 0 arguments 

我想你想要的是这样的:

function set_boxes(form) 

因此,函数内的form变量将等于预期的DOM对象:

var TestVar = form.sets.value; 

此外,您的意思是提醒字符串"TestVar"?如果您想提醒变量的值,只是下降的行情:

alert(TestVar); 

所以,试试这个:

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

对于选择框,你不能只用.value这是一个稍微复杂一点。这应该是你想要什么:

var TestVar = form.sets.options[form.sets.selectedIndex].value;