获取dropdownlist的所有值,以查看加载的值是否已使用javascript更改

获取dropdownlist的所有值,以查看加载的值是否已使用javascript更改,javascript,drop-down-menu,Javascript,Drop Down Menu,这是为了检查用户是否正在打开另一个div(表单;页面有四个div),而没有保存当前表单的条目或更新 我需要将下拉列表的当前值与下拉列表的所有可能选项进行比较。如果存在差异,则会向用户显示警报,通知尚未保存数据。下拉列表的数量不是固定的。我的脚本能够正确计算每个表单的下拉列表数 谢谢 詹姆斯我要做的是: 每当发生更改时(您可以为需要跟踪的任何表单元素附加onChange事件),在某个地方设置一个标志,指示表单(或任何内容)为“脏”。(放这个的好地方是) 保存表单时,保存过程可以将脏标志重新设置为“

这是为了检查用户是否正在打开另一个div(表单;页面有四个div),而没有保存当前表单的条目或更新

我需要将下拉列表的当前值与下拉列表的所有可能选项进行比较。如果存在差异,则会向用户显示警报,通知尚未保存数据。下拉列表的数量不是固定的。我的脚本能够正确计算每个表单的下拉列表数

谢谢

詹姆斯

我要做的是:

  • 每当发生更改时(您可以为需要跟踪的任何表单元素附加onChange事件),在某个地方设置一个标志,指示表单(或任何内容)为“脏”。(放这个的好地方是)
  • 保存表单时,保存过程可以将脏标志重新设置为“清除”
  • 无论使用何种方法切换表单,都可以首先检查是否设置了脏标志,如果设置了脏标志,则显示错误(或警告),并阻止显示下一个表单

  • 有了这三个部分,您应该能够轻松地检测脏(未保存)表单并采取适当的操作。

    您可以通过在更改选择时更新变量,然后在每次执行移动到下一个表单时检查该值来完成此操作。以下是我模拟的代码:

    HTML-

    <select id="one">
        <option value=""></option>
        <option>1</option>
        <option>2</option>
    </select>
    <br />
    <select id="two">
        <option value=""></option>
        <option>3</option>
        <option>4</option>
    </select>
    <br />
    <select id="three">
        <option value=""></option>
        <option>5</option>
        <option>6</option>
    </select>
    <br />
    <!-- The submit buttons -->
    <input type="submit" id="submit" value="Save" />
    <br />
    <!-- The link that moves on to the next form -->
    <a href="#" id="moveOn">Move on</a>
    
    
    1.
    2.
    
    3. 4.
    5. 6.

    Javascript-

    // the variable
    var selectChanged = false;
    // set up everything on load
    window.onload = function() {
    
        // bind handlers to submit button, link, an dselects
        document.getElementById("submit").onclick = submitForm;
        document.getElementById("moveOn").onclick = moveOn;
    
        var selects = document.getElementsByTagName("select");
        var numSelects = selects.length;
        for (var i = 0; i < numSelects; i++) {
            selects[i].onchange = noteChanged;
        }
    }
    
    function submitForm() {
        // set the changed variable to false
        selectChanged = false;
    }
    
    function moveOn() {
        // if the select has changed without save, alert the user and prevent
        // link actions
        if (selectChanged) {
            alert("You have changed a form value but not saved it");
            return false;
        }
    }
    
    // update the value for each time a select changes
    function noteChanged() {
        selectChanged = true;
    }
    
    //变量
    var-selectChanged=false;
    //装上所有东西
    window.onload=函数(){
    //绑定处理程序以提交按钮、链接、数据选择
    document.getElementById(“提交”).onclick=submitForm;
    document.getElementById(“moveOn”).onclick=moveOn;
    var selects=document.getElementsByTagName(“选择”);
    var numSelects=selects.length;
    对于(变量i=0;i

    在操作中

    那么用户是在下拉列表中添加条目,还是更改初始值,或者两者都更改?只是可能更改初始值(这是我应该提出问题的更好方法)。这种情况是,用户打开其中一个表单(div),进行更改,并且出于任何原因不保存它,而是单击另一个表单或页面。