1

好吧,我遇到了一个问题。我正在修改 ATS 系统,需要添加一些功能,但我在 JavaScript 中遇到了一个奇怪的事情。基本上我需要根据下拉菜单中的选择更改一组表单值,并且代码可以工作......当只有一件事需要更改时。当我添加其他需要更改的部分时,它停止工作。我跑遍了整个互联网和许多堆栈问题,但似乎没有任何帮助。有效的代码是:

<form id="test" name="test">
        <select id="statusID" name="statusID" onchange="javascript: return updateForm();">
                <option value="" selected></option>
                <option value="test1">One</option>
                <option value="2">Two</option>
        </select>
        <br />
        <input type="hidden" value="Test" id="RS" name="RS" />
    </form>

<script type='text/javascript'>
function updateForm()
{   
    if (document.getElementById('statusID').selectedIndex  == "2") 
                document.getElementById('RS').value = '200' 

                else if(document.getElementById('statusID').selectedIndex == "1")
                document.getElementById('RS').value = 'RSP'
}
</script>

这在我在服务器上测试它时有效,但是当我添加需要填充的其他字段时它完全停止工作。我正在使用的 JavaScript 如下。我已经根据我看到的代码尝试了一些变体,但无济于事。

<script type='text/javascript'>
function updateForm()
{

    if (document.getElementById('statusID').selectedIndex  == "2") 
                document.getElementById('RS').value = '200'
                document.getElementById('RSDATE').value = '200'
                document.getElementById('RSP').value = '200'

                else if(document.getElementById('statusID').selectedIndex == "1")
                document.getElementById('RS').value = 'RSP'
                document.getElementById('RSDATE').value = 'RSP'
                document.getElementById('RSP').value = 'RSP'          
            }

</script>

我应该指出,我根本不精通 JavaScript。我也不精通 PHP……但我正在修改基于 PHP 的 ATS 系统。这段代码是我和目标(完成 ATS 系统)之间的倒数第二个块,因此将不胜感激。

4

3 回答 3

2

从问题的上下文来看,您应该在 if 和 else if 之后添加大括号:(Combat 也指出,应该添加分号)

        if (document.getElementById('statusID').selectedIndex  == "2")  {
            document.getElementById('RS').value = '200';
            document.getElementById('RSDATE').value = '200';
            document.getElementById('RSP').value = '200';
        }
        else if(document.getElementById('statusID').selectedIndex == "1") {
            document.getElementById('RS').value = 'RSP';
            document.getElementById('RSDATE').value = 'RSP';
            document.getElementById('RSP').value = 'RSP';      
        }
于 2012-06-21T22:50:01.680 回答
2

您需要在每行的末尾使用分号以及每个条件的花括号。

function updateForm() {
    if (document.getElementById('statusID').selectedIndex == "2") {
        document.getElementById('RS').value = '200';
        document.getElementById('RSDATE').value = '200';
        document.getElementById('RSP').value = '200';
    }

    else if (document.getElementById('statusID').selectedIndex == "1") {
        document.getElementById('RS').value = 'RSP';
        document.getElementById('RSDATE').value = 'RSP';
        document.getElementById('RSP').value = 'RSP';
    }
}​
于 2012-06-21T22:56:43.167 回答
0

当你想要执行一个动作块时,条件句后面需要跟括号。例如:

if (document.getElementById('statusID').selectedIndex  == "2") {
            document.getElementById('RS').value = '200'
            document.getElementById('RSDATE').value = '200'
            document.getElementById('RSP').value = '200'
}
于 2012-06-21T22:51:52.127 回答