有一个提交表单如下:
<html:form action="/createRoleDepartment.do">
我想通过列表框选择,把action的内容改变为"/createRoleUsers.do"。
开始的时候是想通过javascript实现,但是尝试多次都不成功。请各位指明,谢谢!
<html:form action="/createRoleDepartment.do">
我想通过列表框选择,把action的内容改变为"/createRoleUsers.do"。
开始的时候是想通过javascript实现,但是尝试多次都不成功。请各位指明,谢谢!
<option value="createRoleUsers.do">创建角色用户</option>
<option value="createRoleDepartment.do">创建角色部门</option>
<option value="abcdef.do">做xxxx操作</option>
</select>在head部分写入
<script language="javascript">
function getactionurl()
{
var vfrm = document.getElementById("abcfrm");
vfrm.action=event.srcElement.value;
}
</script>
td4.innerHTML="<html:text property='privilege'/> ";)改变网页中的文本框时,程序就执行错误,提示找不到formbean。难道程序一开始就把Action和网页对应好,没有办法改变吗?如果没有加上上面2行程序,程序能够正常执行,也可以随意选择.do执行。
请各位给出解决方法,谢谢!使用的方法如下:
<script language=JavaScript>
function bao(s)
{
if(s=="users"){
var vfrm = document.getElementById("frm");
vfrm.action="createRoleUsers.do";
td1.innerHTML="<span class='STYLE1'>*</span>角色名:";
td2.innerHTML="<html:text property='roleName'/> ";
td3.innerHTML="<span class='STYLE1'>*</span>角色优先级:";
td4.innerHTML="<html:text property='privilege'/> ";
td5.innerText=" ";
td6.innerText=" ";
}
}
</script>
<html:form styleId="frm" action="/createRoleDepartment.do">
按下按钮时,取得select中的值,然后改变form中的action,接着提交
html:form是有name属性的
可以参考一下。
struts-config.xml:
<action-mappings >
<action
name="testForm1"
path="/testAction1"
scope="request"
type="com.iss.struts.action.TestAction1" >
<forward name="test1" path="/test1.jsp"/>
</action>
<action
name="testForm2"
path="/testAction2"
scope="request"
type="com.iss.struts.action.TestAction2" >
<forward name="test2" path="/test2.jsp"/>
</action>
</action-mappings>JSP:
<%@ page language="java" pageEncoding="gbk"%><html locale="true">
<head>
<title>MyJsp.jsp</title>
</head>
<script language=JavaScript>
function bao()
{
var vfrm = document.getElementById("frm");
var td1 = document.getElementById("td1");
var td2 = document.getElementById("td2");
var td3 = document.getElementById("td3");
var td4 = document.getElementById("td4");
if(td1.innerHTML=="Login:"){
vfrm.action="testAction2.do";
td1.innerHTML="roleName:";
td2.innerHTML="<input type='text' name='roleName'/> ";
td3.innerHTML="privilege:";
td4.innerHTML="<input type='text' name='privilege'/> ";
}
else{
vfrm.action="testAction1.do";
td1.innerHTML="Login:";
td2.innerHTML="<input type='text' name='login'/> ";
td3.innerHTML="Password:";
td4.innerHTML="<input type='text' name='password'/> ";
}
}
</script>
<body>
<form name="frm" action="testAction1.do" method="post">
<table border="0">
<tr>
<td id="td1">Login:</td>
<td id="td2"><input type="text" name="login" /></td>
</tr>
<tr>
<td id="td3">Password:</td>
<td id="td4"><input type="text" name="password" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="submit" /></td>
</tr>
</table>
</form>
<input type="button" value="changeAction" name="change" onclick="bao();"/>
</body>
</html>
testForm1:
private String login;
private String password;testForm2:
private String roleName;
private String privilege;
但是发现login,password等变量不会自动获取数据,换句话说ActionForm不起作用;这样,在Action中,当提取testForm1中的数据时,就会出现异常。
请问如何处理,谢谢
============================================
html:form 解析成form标签以后,它的name属性就是html;form标签对应的formbean的类名的首字母小写在JS里还可以通过这样的语句得到form:
document.forms[0].action="";
document.forms[0].submit();
document.forms[0]代表网页上第一个form表单,如果有多个,依次类推