jsp在两个页面之间传递变量

时间:2012-06-04 12:52:20

标签: javascript html jsp

在我的主要jsp页面中,我有类似

的内容
<%@ include file="../customParametersHorizontal.jsp" %>

<tr>
<td align="center" class="ReportParamsGenerateButtonCell">
<html:submit onclick="if(preGenerateCriteria()){return true;} else {return false;}">Generate</html:submit>
</td>
</tr>

在customParametersHorizo​​ntal.jsp中,还有另一个包含dateSelection1.jsp的包含,它验证表单上设置的日期和时间。

 <script>
function validateHHMM(inputField, message) {
    var isValid = /^(0?[1-9]|1[012])(:[0-5]\d) [APap][mM]$/.test(inputField);

    if (isValid) {

    }else {
        alert("Time must be entered in the format HH:MM AM/PM");

    }

    return isValid;
}
</script>

所以,在dateSelection1.jsp中,我尝试使用以下命令禁用主jsp中的按钮:

 document.form1.ReportParamsGenerateButtonCell.disabled= true;

但是,我得到一个错误,说对象为null或未定义。

无论如何,我可以设置一个var,以便它可以被主窗体追逐并相应地禁用按钮吗?

2 个答案:

答案 0 :(得分:1)

document.form1.ReportParamsGenerateButtonCell将返回null或错误,除非您将name属性设置为form1ReportParamsGenerateButtonCell的元素如下所示:

<form name="form1">
    <input type="submit" name="ReportParamsGenerateButton" value="Generate" />
</form>

通过这种方式,您可以毫无问题地执行document.form1.ReportParamsGenerateButton.disabled = true

答案 1 :(得分:1)

这是一种方法,保留<html:submit>标记,并且不引入jQuery:首先,添加styleId属性,以便您的按钮具有可以抓取的HTML ID:

<html:submit styleId="my_submit" onclick="if(preGenerateCriteria()){return true;} else {return false;}">Generate</html:submit>

接下来,使用ID获取DOM的元素并禁用它:

var elt = document.getElementById("my_submit");
elt.disabled = true;

<强>更新

如果我正确理解原始问题,main.jsp包含customParametersHorizo​​ntal.jsp,whici包含dateSelection1.jsp。因此,这三个脚本只渲染一个HTML页面,因此只有一个文档对象。

我只在HTML页面上看到一个<form>的(部分)代码。即使您有多个表单,.getElementById()也适用于所有表单中的所有DOM元素,而不是访问元素的document.form1样式。

请确保在适当的位置调用validateHHMM()以启用/禁用提交按钮,并确保在用户更正其输入以使其有效后重新启用该按钮。

相关问题