2011-09-07 71 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;