0

我正在使用更多使用 jQuery 的修改后的代码重新发布这个问题。

这是定义对象的 HTML 代码:

<LEGEND><b>Select Study Sample</b></LEGEND>
<p>
<P CLASS=select_header>Study - Box - Well - Lab ID<br>
<SELECT multiple size=20 NAME="stylabid" ID="stylabid" onchange=show_stylabid() onclick=clear_fetch() STYLE="width: 115px">
<?php 
  $i=0;
  while ($i < $numstylabids) {
    $styarr = pg_fetch_row($stylabidresult);
    echo "<option value=$styarr[0]>$styarr[1]\n";
    $i++;           
  }
  ?>
</select>

<LEGEND><b>Select Project Sample</b></LEGEND>
<p>
<P CLASS=select_header>Project - Box - Well - Lab ID<br>
<SELECT multiple size=20 NAME="pjtlabid" ID="pjtlabid" onchange=show_pjtlabid() onclick=clear_fetch() STYLE="width: 115px">
<?php 
  $j=0;
  while ($j < $numpjtlabids) {
    $pjtarr = pg_fetch_row($pjtlabidresult);
    echo "<option value=$pjtarr[0]>$pjtarr[1]\n";
    $j++;           
  }
  ?>
</select>

现在,这是javascript;我只是想获取所选对象的值,它可以是研究或项目。我稍后使用它从数据库中检索数据:

function fetchgenotype() {
    var ms, mndx, ss, sndex = 0;

    ms = $("#marker")[0].selectedIndex;    

    if (Study_selected) {
      ss = $("#stylabid")[0].selectedIndex;
      sndx = $("#stylabid").val(ss);
    } else
      ss = $("#pjtlabid")[0].selectedIndex;
      sndx = $("#pjtlabid").val(ss);
    }    

    // for debugging...    
 alert('ss='+ss+', sndx='+sndx);

这段代码死了就行了sndx = ... 非常感谢任何帮助!

TIA

4

3 回答 3

1

我认为您有语法错误

sndx 应该是 sndex .. 或者相反

var ms, mndx, ss, sndex = 0; // <--

$("#pjtlabid").val(ss) // <-- setter method

.val(value) 也是一个 setter 方法,所以 sndx 是未定义的,因为它从未被定义为任何值

于 2012-09-21T21:17:25.247 回答
1

目前我不知道 Study_selected 的 $("#marker") 是什么。

假设到目前为止一切正常,请将函数更改为:

if (Study_selected) {
      sndx = $("#stylabid").val();
    } else
      sndx = $("#pjtlabid").val();
    }

val()不带参数使用时返回表单元素的值,否则将设置该值并返回一个 jQuery 对象。

无需检索 selectedIndex,您可以直接访问 select-element 的值(它将是当前选择的选项的值)

于 2012-09-21T21:30:01.743 回答
0

这是一个错字:

var ms, mndx, ss, sndex = 0;

应该

var ms, mndx, ss, sndx = 0;
于 2012-09-21T21:17:31.843 回答