<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
   <head>
      <sx:head/>
      <base href="<%=basePath%>">
      <title>mmm</title>
      
      <meta http-equiv="pragma" content="no-cache">
      <meta http-equiv="cache-control" content="no-cache">
      <meta http-equiv="expires" content="0">
      <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
      <meta http-equiv="description" content="This is my page">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      
      <link rel="stylesheet" type="text/css" href="<s:url value='/css/global.css'/>">
      <link rel="stylesheet" type="text/css" href="<s:url value='/asset/css/list.css'/>">
   </head>
   <body>
      <div class="div_bottom">
      <s:form action="addAsset" theme="simple">
         <table class="table_mod">
            <tr id="trfromdb">
               <td>名称:</td>
               <td><s:select name="asset.name" id="fromdb" list="assetsAdd" onclick="addNameByUer('fromdb')"/></td>
            </tr>
            <tr  id="trfromuser" style="display:none">
               <td>自定义名称:</td>
               <td><s:textfield name="asset.name" id="fromuser" /></td>
            </tr>
          </table>
      </s:form>
      </div>
   </body>
   <script type="text/javascript" src="<%=basePath%>asset/javascript/asset.js"></script>
</html>--------------------------------------------------------------------------------------------------------------
js代码function addNameByUser(ob){
/*
var txt = document.getElementById(ob).options[document.getElementById(ob).selectedIndex].text;//试过
var txt = document.getElementById(ob);//试过
*/
var txt = document.getElementById(ob).value;
alert(txt);
if(txt == "自定义"){
alert("自定义");
}
else{
alert("选择名称");
}
}
不论在select中选什么值,都没有alert出现,js中注释的两行都用过但不起作用,请问问题在哪

解决方案 »

  1.   

    var txt = document.getElementById(ob).value; //应该加引号你最好查看一下页面生成的源码,看一个select的id是不是ob另外一种方式也可以通过name来取值
      

  2.   

    google一下..这东西应该很好解决..
      

  3.   

    var txt = document.getElementById(ob).value; //应该加引号另外..你这个完全没有必要用传参数的方式把ID传进来.直接写
    var txt = document.getElementById("fromdb").value; //应该加引号
    你看..1楼的兄弟就没看明白你的意思..所以..写代码的首要原则就是简单易懂..
      

  4.   

    <tr id="trfromdb"> 
                  <td>名称: </td> 
                  <td> <s:select name="asset.name" id="fromdb" list="assetsAdd" onclick="addNameByUer('fromdb')"/> </td> 
                </tr> 
    改成onchange
      

  5.   

    测试一下JS文件加进来没有,测试一下ob,
    测试一下document.getElementById(ob)
      

  6.   


    刚测试了  貌似js文件没有加进来  汗
    可是我在html中引入了js文件啊   其他页面也是这样引入的  都没问题  不知这里有什么问题
      

  7.   

    这个问题我还真遇到过,不过我解决了,照下面的方法试试:
    with(document.getElementById(ob)) { 
        var txt= options[selectedIndex].value;
    }
    这个应该没问题了
      

  8.   


    这个就相当于把我注释的第一行的text换成value吧   刚试了  不行
      

  9.   

    而且你的触发事件就没写对,select的触发事件一般用onchange,而不是象button一样用onclick,最后你的引用JS文件句子放的位置不规范,一般放到head中,再有,我测试了你的代码,的确不能运行,原因不明,只是因为你的代码有错误提示,但是不知道错在哪,可能是字符不规范造成的,而不是我的代码有错,我一字不差的自己敲了代码来测试就能正常运行,我想说的是在写代码时最好把输入法这些关掉
      

  10.   


    我已经改成了onchange,这点你说的没错。
    js文件是一般放head中,可是放结尾可以提高页面执行效率。
    我的代码现在可以运行了,怪异的是我没改它,它又可以运行了
    分已经给人了,可是很感谢你的提醒
      

  11.   

    JS 获取select的value和text值的详细方法及代码可参见http://guoxj.com/?p=57,我曾经在自己的项目中使用过,绝对可行。