使用jQuery </select>从<select>获取更改的值

时间:2012-07-26 07:26:51

标签: jquery

我正在尝试使用 jQuery 获取<select>输入的更改值。

更改前

<select class="input" multiple="multiple" name="inputUserRoles[]">
  <option value="Administrator">Administrator</option>
  <option value="Faculty" selected="selected">Faculty</option>
  <option value="Head of Department">Head of Department</option>
  <option value="Faculty Coordinator" selected="selected">Faculty Coordinator</option>
</select>

更改后

<select class="input" multiple="multiple" name="inputUserRoles[]">
  <option value="Administrator">Administrator</option>
  <option value="Faculty" selected="selected">Faculty</option>
  <option value="Head of Department">Head of Department</option>
  <option value="Faculty Coordinator">Faculty Coordinator</option>
</select>

如果您注意到,在更改事件后,“教师协调员”选项不是selected

我希望获得“教师协调员”的价值。

我的javascript代码

$('select[name="inputUserRoles[]"]').change(function(e) {
  // this line gives me the value after the change event.
  var inputUserRoles = $(this).val();
});

可能的解决方案?

我认为事件(e)应该包含已更改的数据,但我不知道如何获取它。我正在进行的项目正处于最后阶段,我只需要弄清楚这一部分,以完成类似的剩余模块。

完成此任务的另一种方法是获取旧输入并进行比较。

1 个答案:

答案 0 :(得分:5)

那样做:

var valueBeforeChange = $('select[name="inputUserRoles[]"]').val();

$('select[name="inputUserRoles[]"]').change(function(e) {
  var inputUserRoles = $(this).val();

  //you can compare here with value before change
  ...

  valueBeforeChange = inputUserRoles;
});