下拉菜单-获取下拉列表的所有值,看看是否加载值已经改变使用javascript
drop down menu - get all values of dropdownlist to see if loaded value has changed using javascript
检查用户是否正在打开另一个div (form;在没有保存当前表单的条目或更新的情况下,页面有四个。
我需要将下拉列表的当前值与下拉列表的所有可能选项进行比较。如果存在差异,则向用户显示未保存数据的警报。有一个不是固定数量的下拉列表。我的脚本已经能够正确地计算每个表单的下拉列表的数量。
谢谢,詹姆斯
您可以通过在选择更改时更新变量,然后在您执行要移动到下一个表单的操作时检查该值来做到这一点。下面是我模拟的代码:
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>
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;
}
我要做的是:
- 每当一个变化发生(你可以附加到onChange事件的任何表单元素,你需要跟踪),设置一个标志,表明表单(或任何)是"脏"。(一个很好的地方放在data- attributes)
- 当表单被保存时,保存进程可以将dirty标志重新设置为clean
- 无论使用什么方法来切换表单,都可以先检查是否设置了dirty标志,如果设置了,则显示错误(或警告)并阻止显示下一个表单。
有了这3个部分,您应该能够很容易地检测到脏的(未保存的)表单,并采取适当的操作。
相关文章:
- Angularjs改变路线;t加载数据(ngRepeat)
- jQuery模板不加载时,我使用改变方法
- 预加载视频(不播放,不改变源,不自动播放)点击或可见时
- AngularJs的Url会改变,但旧的视图是通过ui-router加载的
- 如何在改变窗口宽度时重新加载css样式?
- 如何用JSONLoader改变在js中加载的对象的颜色
- 如何改变图片在网页上的加载方式?(例如,较低的分辨率)
- Angular.js:在加载时改变Iframe的高度;改变的内容
- 如何改变图像源基于它的类在jQuery中,页面加载后
- JS继续加载,直到img src改变
- AngularJS:改变URL,但不改变浏览器后退和前进按钮的控制器或模板加载
- 没有改变在iframe内加载的输入按钮的背景颜色
- AngularJS:在页面加载时用服务器数据改变输入值
- 当改变url参数时,React路由器不会重新加载组件
- 改变锚标记href通过ajax加载
- 当CSS属性溢出改变时,在firefox上重新加载Youtube视频
- 当HTML页面重新加载时,使用c#来改变它
- 改变位置.在重新加载页面时散列
- 改变图像的Src在第一次加载时不工作
- 如何在加载后将媒体变量添加到数组时不改变它们.闭包