以下代码在FF中工作,但在IE中不起作用。 IE中没有document.myform["parameters"].value
的值。
代码:
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倍, 罗尼
答案 0 :(得分:1)
您需要为每个选项提供一个值。此外,您无法使用select标记的值获取所选选项。你需要使用:
var selectedOption = document.myform.parameters.options[document.myform.parameters.options.selectedIndex].value;
答案 1 :(得分:0)
<option>1234</option>
1234
- 是text
选项
<option value="1234">1234</option>
现在1234
- 是一个文本和值。
答案 2 :(得分: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;
}
当你无法确定字段的类型时(例如,如果字段在某些情况下是可编辑的类型并隐藏在其他字段下),该函数会非常方便,但是一旦写入它就很容易回退,尤其适用于选择,收音机和复选框。