我正在尝试使用我的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 ()
中添加所有这些代码
通过不工作的方式,事件不会被解雇
答案 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
值,因此您的条件始终是假的。