2010-11-02 14 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; 
    } 

功能进来,而当你无法确定字段可能是什么类型时(例如,如果该字段在某些情况下是可编辑类型并且隐藏在其他字段之下),但是一旦写入,它就是一个简单的后备,特别是对于选择,无线电和复选框。