我有以下代码,基本上当select的值改变时,我希望能够获取新值并将其添加到已存在的值(或减去它)。
我遇到了一个实际抓住价值的问题。我有这个来创建选择列表:
<li class="extraHeight">
<asp:Image runat="server" CssClass="iconImageMove" ID="Image14" ImageUrl="~/images/icons/carpark_off.png" />
<div class="flipWidth">
<select name="access" class="change" id="carpark_off" runat="server">
<option value="0">Off</option>
<option value="256">On</option>
</select>
</div> <br /> <p class="noWrap">Accessible Car parking facilities</p>
</li>
<li class="extraHeight">
<asp:Image runat="server" CssClass="iconImageMove" ID="Image15" ImageUrl="~/images/icons/parking_off.png" />
<div class="flipWidth">
<select name="access" class="change" id="parking_off" runat="server">
<option value="0">Off</option>
<option value="33554432">On</option>
</select>
</div> <br /> <p class="noWrap">Customer Car parking facilities</p>
</li>
<li class="extraHeight">
<asp:Image runat="server" CssClass="iconImageMove" ID="Image16" ImageUrl="~/images/icons/staff_off.png" />
<div class="flipWidth">
<select name="access" class="change" id="staff_off" runat="server">
<option value="0">Off</option>
<option value="8192">On</option>
</select>
(还有很多,但这会给你一个想法)
我正在使用以下jQuery来检测更改并尝试获取值,但它不起作用:
<script>
var value = $("select").val()
$("select").change(function () {
alert(value);
})
</script>
真的很感激任何建议!
汤姆
答案 0 :(得分:3)
您只选择初始值。您需要在change事件中获取值。
$("select").change(function () {
var value = $(this).val()
alert(value);
})
答案 1 :(得分:1)
您可以在更改前设置您的值:
<script>
$("select").change(function () {
var value = $(this).val()
alert(value);
})
</script>
答案 2 :(得分:1)
调用var value = $("select").val()
会将选择器匹配的第一个<select>
元素的值保存到运行该代码时的变量中 - 当您更改该值时,它将不会更新元件。
相反,您可以使用this
回调函数中的change()
来引用已更改的<select>
元素,并获取其值,如下所示:
$("select").change(function () {
alert(this.value);
});
答案 3 :(得分:0)
你会做这样的事情:
$("select").change(function () {
alert($(this).val());
})
您只获取一次值,然后在更改事件上显示相同的内容。
答案 4 :(得分:0)
尝试:
<script>
$(document).ready(function () {
$("select").change(function () {
var value = $(this).val();
alert(value);
});
});
</script>
将在DOM加载后将您的更改处理程序附加到select元素。
此外,value
应该在处理程序中作用域,否则当其他select
元素触发更改事件时,不一定会更新该值。
答案 5 :(得分:0)
首先将您的脚本包装在$(document).ready()
中,以便在加载页面后执行。其次在回调中获取select的值:
$(document).ready(function(){
var value = $("select").val()
$("select").change(function () {
alert($(this).val());
});
})