2010-11-02 17 views
1

以下代碼在FF中工作,但在IE中不工作。在IE中沒有document.myform["parameters"].value的值。表單中的元素在IE中爲空

代碼:

function form_elements() 
{ 
    if(document.myform.elements["parameters"].value == '') 
    { 
     myform_values = ...... 
    } 
} 

<form method="post" name="myform"> 
    <div id="parameters_info"> 
    <select id="parameters" name="parameters" onfocus="e =form_elements();" > 
     <?php 
      foreach($params_name as $name) 
       { 
       if($name == $param_posted) 
       { 
        echo "<option selected>$name</option>"; 
       } 
       else 
       { 
        echo "<option>$name</option>"; 
       } 
      } 

     ?> 
     </select> 
</div> 
</form> 

我也document.myform["parameters"].value試過,但值爲空。

我的選擇是這樣的:

<option>1234</option> 
<option>234a</option> 

,我想的是,期權的價值將在函數。

10倍, 羅尼

回答

1

你需要給一個值的每個選項。另外,您不能使用select標籤的值來獲取選定的選項。您需要使用:

var selectedOption = document.myform.parameters.options[document.myform.parameters.options.selectedIndex].value; 
+0

謝謝!它正在工作.. – Ronny 2010-11-02 12:49:37

0

<option>1234</option>
1234 - 是一種選擇的text
<option value="1234">1234</option>
現在1234 - 是一個文本和值。

0

這應該是:

document.forms["myform"].elements["parameters"].options[document.forms["myform"].elements["parameters"].selectedIndex].text 

...或者你可以使用這樣的功能,它可以由任何字段類型返回值的數組:

function getFieldValueArray(fld, frm) { 
    // fld may be a field object or a field name 
    // frm may be an index or a name, defaults to document.forms[0] when needed and not supplied 
    //function returns an array of values 
    var form = frm ? document.forms[frm] : document.forms[0]; 
    var field = (typeof(fld) == "object") ? fld : form.elements[fld]; 
    var valueArray = new Array(); 
    var multinode = (field.length>1) ? true : false; 
    var type = field.type; 
    if (!type) { 
     type = field[0].type; 
     } 
    switch(type) { 
     case "radio": //fall-through intentional 
     case "checkbox": 
     if (multinode) { 
      for (i=0; i<field.length; i++) { 
       if (field[i].checked) { 
        valueArray.push(field[i].value); 
        } 
       } 
      } 
     else { 
      if (field.checked) { 
       valueArray.push(field.value); 
       } 
      } 
     break; 
     case "select-one": //fall-through intentional 
     case "select-multiple": 
     var options = field.options; 
     for (i=0; i<options.length; i++) { 
      if (options[i].selected) { 
       valueArray.push(options[i].value ? options[i].value : options[i].text); 
       } 
      } 
     break; 
     case "text": //fall-through intentional 
     case "file": 
     valueArray.push(field.value); 
     break; 
     case "hidden": 
     valueArray = field.value.split(";"); 
     break; 
     case "textarea": 
     valueArray = field.value.split("\n"); 
     default: 
     alert("Field not found -- atGetField(" + fld.toString() + ")"); 
     } 
    return valueArray; 
    } 

功能進來,而當你無法確定字段可能是什麼類型時(例如,如果該字段在某些情況下是可編輯類型並且隱藏在其他字段之下),但是一旦寫入,它就是一個簡單的後備,特別是對於選擇,無線電和複選框。