struts中下拉列表的onchang事件执行actiong的用法100分
我在做项目中遇到的的情况是 是用SSH框架做的
一个页面有2个下拉列表框 一级类别的二级类别 现在是要通过选择一级类别而获得
相应的二级类别 我的想法是在下拉列表的onchang事件中调用一个action获得一个
二级类别的list,但我试了onchang= "/**.do "这样执行不了 页面的提示错误是onchang= "/**.do "少了个“/”符号 我改城onchang= "//**.do "后就没这个页面错误
但我们都知道虽然没错误但action是绝对执行不了 所以这样也不行
我又想了一个方法绝对这个问题 但我绝对这个方法还是感觉不怎么好
大家可以看看 如果大家有更好的方法可以提出来 共同进步
这是javascript函数
function getname{
this.frm1.select.options[..] 省//这行代码是获得select里面被选种的option的value
//下面是调用action关键代码了
window.open( "你要调用的action如:???.do ,并可以你获得传递参数 ");
}
好调用action没问题了
下面是也面的struts标签
当然还有些逻辑标签用于判断onetype,twotype存在的我就没写了
onetype,twotype这2个对象集合当然都是从数据库里读出来的 不是死的数组
我主要写主要代码
<html:select property= "select " onchang= "retrun getname(); ">
<html:option name= "onetype "property= "onetypename "> </html:option>
</html:select>
<html:select property= "select ">
<html:option name= "twotype "property= "twotypename "> </html:option>
</html:select>
这个功能我用aps.net写只用了10分钟
在asp.net里面只要在页面加栽的时候判断是否为回发页面并在下拉列表里的onchang事件从数据库里读出数据就可以了,注意asp.net的控件他自己自带事件的
------解决方案--------------------可以用javascript来处理
function change(){
operation = "change "; //此处的opertion要在页面隐藏一下,可在ActionForm中定义
}
页面中 onchang=“function change()”
action中
if(opertaion.equals( "change ")){
得到你的list,然后用request.setAttribute()返回给页面就OK了
}
------解决方案--------------------不对吧
当onchang事件触发的时候你根本没调用action啊
你只是返回了一参数opertaion啊?
function change(){
operation = "change ";
document.forms[0].submit(); //此处的opertion要在页面隐藏一下,可在ActionForm中定义
}
onchang事件触发后又没让表单执行他的actiong= "??.do " ,只执行了你自己写的JS函数而已吧?
你可以提交表单啊,得到二及页面的数据再返回这个页面。
------解决方案-------------------- document.frm1.action = "/action.do ";
document.StartForm.submit();