无法使用select绑定onChange事件

时间:2014-03-10 12:12:25

标签: javascript jquery

我正在尝试使用我的HTML选择绑定on-change事件,但在此不成功, 这是我的HTML代码

<div class="size clearfix">
  <form>
    <label for="Size"><spring:theme code="product.variants.size"/></label>
    <select id="Size">
      <option>..</option>
      <option>..</option>
      <option>..</option>
    </select>
  </form>
</div>

这是怎么回事,我试图绑定onChange事件

$(document).ready(function ()
    $("#Size").change(function () {
      var url = "";
      var selectedIndex = 0;
      $("#Size option:selected").each(function () {
        url = $(this).attr('value');
        selectedIndex = $(this).attr("index");
      });
      if (selectedIndex != 0) {
        window.location.href=url;
      }
    });
});

但不知怎的,这不起作用,不知道我做错了什么。只需要在$(document).ready(function ()中添加所有这些代码 通过不工作的方式,事件不会被解雇

1 个答案:

答案 0 :(得分:2)

没有index属性,您应该阅读select元素的selectedIndex属性。

var selectedIndex = this.selectedIndex;

此外,由于您没有多重选择元素,因此此处each调用是多余的。 this.value为您提供当前选择的值。

$("#Size").change(function () {
   if (this.selectedIndex > 0) {
      // Assuming your options have `value` attribute 
      window.location.href= this.value; 
   }
});

为了完整地获取index回调中所选选项的each,您可以使用index方法:

$(this).index();

由于attr('index')返回undefined值,因此您的条件始终是假的。