0

嘿,我需要使用 java 脚本函数来验证两种形式的字段。基本上,标准是当用户选择表单名称时,需要的字段必须在下一个表单上可见。我需要询问是否可以对不同页面上的表单使用 java 脚本功能。下面是我的代码

表格rpt的代码

<html>
<head>
<script type="text/javascript" src="javascript/formvalidations.js"></script>
</head>
<form name="rpt" method="post" action="">
    <label>Form Name </label>
    <select id="formname" name="formname"> 
    <option value="" selected="selected">--Please Select Form Name--</option>
    <option value="1">1</option>
    <option value="2">2</option>
</select><br />
<input id="ok" type="submit" name="ok" value="OK" onclick="return chkform();" />
</form>
</html>

java脚本函数的代码

function chkform(){
    var formname = document.forms.rpt.formname.value;
        if (formname == "1"){
            document.forms.reportform.getElementById("1").style.display="inline";
            document.forms.reportform.getElementById("2").style.display="inline";
            document.forms.reportform.getElementById("3").style.display="inline"
            document.forms.reportform.getElementById("4").style.display="none";
            document.forms.reportform.getElementById("5").style.display="none";

        }
        elseif (formname == "2"){
            document.forms.reportform.getElementById("1").style.display="inline";
            document.forms.reportform.getElementById("2").style.display="none";
            document.forms.reportform.getElementById("3").style.display="inline"
            document.forms.reportform.getElementById("4").style.display="none";
            document.forms.reportform.getElementById("5").style.display="inline";
        }
        else{
            alert("select form name");
            return false;
        }
}

我在表单报告表中有 5 个字段。我需要在报表中显示必填字段。假设用户在 rpt 中选择值 1,则字段 1、2 和 3 必须可见。

4

1 回答 1

2

你在这一行有一个语法错误:

elseif (formname == "2"){

JavaScript 没有elseif一个单词,你需要插入一个空格:

else if (formname == "2"){

此外,该getElementById()函数是 的方法document,而不是单个 html 元素的方法,因此请使用:

document.getElementById("1").style.display="inline";
// and so forth

如果您使用浏览器的 JS 控制台(例如,在 Chrome 中按 F12),它将向您报告这些错误(它不会告诉您如何修复它们,但至少它会为您指明正确的方向)。

于 2013-01-24T07:32:52.337 回答