获取dropdownlist的所有值,以查看加载的值是否已使用javascript更改
这是为了检查用户是否正在打开另一个div(表单;页面有四个div),而没有保存当前表单的条目或更新 我需要将下拉列表的当前值与下拉列表的所有可能选项进行比较。如果存在差异,则会向用户显示警报,通知尚未保存数据。下拉列表的数量不是固定的。我的脚本能够正确计算每个表单的下拉列表数 谢谢 詹姆斯我要做的是:获取dropdownlist的所有值,以查看加载的值是否已使用javascript更改,javascript,drop-down-menu,Javascript,Drop Down Menu,这是为了检查用户是否正在打开另一个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),进行更改,并且出于任何原因不保存它,而是单击另一个表单或页面。