从下拉菜单更改选项时取消事件

时间:2018-10-19 19:19:07

标签: javascript angularjs

我有以下代码,在该代码中,我将从下拉列表中进行选择更改的确认。如果用户从列表中选择任何选项,然后单击“取消”,那么我想在确认警报的取消事件上将选项更改为默认的“选择任何一个”。当前选择的是默认选择。

$scope.GetValue = function(newObj, oldObj) {
var dialog = confirm('Continue?');
if (dialog) {
  alert("Changing from "+oldObj+"to "+newObj);
}
else {
$scope.valueProps = '';
}

}

JSFIDDLE

如果取消事件被触发,则有关如何将选项更改为默认值(选择任意一项)的任何帮助。

1 个答案:

答案 0 :(得分:1)

在父循环中使用同一对象时,不应将对象键用作选择选项值。

首先,请使用其他范围而不是循环对象作为选项

$scope.optionList = [
  "For any event on all my projects",
  "For any event on the selected projects only...",
  "Only for things I watch or I'm involved in",
  "Only for things I am assigned to",
  "Only for things I am the owner of",
  "No events"
];

并且您可能不想使用范围来选择循环项。 $scope.valueProps = ''; 您可以将旧值作为像oldValue这样的键存储在循环项中

{
    "key": "all",
    "value": "",
    "oldValue": ""
  },

并更改事件传递循环项作为函数的参数

function GetValue(row) {
  if (confirm('Continue?')) {
    alert('Changing from ' + row.oldValue + 'to ' + row.value);
    // You should change your old value with new value after alert notify
    row.oldValue = row.value;
  } else {
    // if confirm rejects then change value with old value
    row.value = row.oldValue;
  }
}

我对您的代码进行了一些更改,请检查一下;

option