代码如下,求助各位,我需要在js中得到em.price和em.num的值,但是又不想再页面上把他们显示出来,应该怎么做?
<select name="id" class="textarea" id="iddd"
onblur="getAdvAndLeftInfo(this.options[this.selectedIndex].text);">
<option></option>
<s:iterator value="list" id="em" status="i">
<option id="optionid" value="<s:property value="#em.id" />">
<s:property value="#em.id" />?<s:property value="#em.price" />?<s:property value="#em.num" />
</option>
</s:iterator>
</select>
现在的代码可以实现在js中通过解析数据得到em.price和em.num的值,但是,下拉框中也会把他们都显示出来,这个比较郁闷。比如说,em.id是1,em.price是10,em.num是5,我需要下拉框中显示的是1,但是现在的效果是显示1?10?5。
另外,因为提交页面的时候需要提交em.id的值,所以,不能把<s:property value="#em.id" />?<s:property value="#em.price" />?<s:property value="#em.num" />写在option的value中,那样虽然能够在显示的时候正常显示,但是最后提交的id就是1?10?5这样的数据了。在线等,能解决再加分。

解决方案 »

  1.   

    你是说>?<s:property value="#em.price" />?<s:property value="#em.num" />
    这两个值要存在,又也想显示?那就别外写个
    <s:iterator value="list" id="em" status="i">
    <input type="hidden" value='<s:property value="#em.price" />?<s:property value="#em.num" />
    '>
    </s:iterator>
      

  2.   

    <select name="id" class="textarea" id="iddd" onblur="getAdvAndLeftInfo(this.options[this.selectedIndex].pnvalue);">
    <option></option>
    <s:iterator value="list" id="em" status="i">
    <option id="optionid" value="<s:property value="#em.id" />" pnvalue="<s:property value="#em.price" />?<s:property value="#em.num" />">
    <s:property value="#em.id" />?<s:property value="#em.price" />?<s:property value="#em.num" />
    </option>

    </s:iterator>
    </select>
      

  3.   


    pnvalue?好像没有这个tag啊
      

  4.   

    html标签支持自己定义属性.你调试看看。项目开发中已经用过,很实用。
      

  5.   

    js也支持对象啊,比如
    <script language="JavaScript>var em = new Array();
    em['a'] = {id:'a',price:1,num:2};
    em['b'] = {id:'b',price:10,num:20};alert(em['b'].price);
    </script>
    那么你可以这么写:<script language="JavaScript>var em = new Array();
    <s:iterator value="list" id="em" status="i">
    em['<s:property value="#em.id" />'] = {id:'<s:property value="#em.id" />',price:<s:property value="#em.price" />,num:<s:property value="#em.num"};
    </s:iterator></script>
      

  6.   

    晕,少掉一点东西<script language="JavaScript>var em = new Array();
    <s:iterator value="list" id="em" status="i">
    em['<s:property value="#em.id" />'] = {id:'<s:property value="#em.id" />',price:<s:property value="#em.price" />,num:<s:property value="#em.num" />};
    </s:iterator></script>