选择器输入[name ^ =在更改选择时不起作用

时间:2013-11-07 12:31:11

标签: jquery

我在捕捉选择的on change事件时遇到问题。 如果选择器直接指向id,则没有问题。但随着, 它不起作用。 你知道为什么吗?

这是我的一大块代码:

<html>
<head><title></title>

  <link rel=stylesheet href="css/jquery-ui-1.9.2.custom.css" />
  <script type="text/javascript" src="js/jquery-1.9.1.min.js"> </script>
  <script src="js/jquery-ui-1.9.2.custom.js"></script>


....

  <select name="type_book_1" id="type_book_1">
    <option value="ae">airplane</option>
    <option value="ca">car</option>
   </select>

....

JS:

<script>
$(function () {
    $(document.body).on('change', 'input[name^="type_book"]', function () {
        alert('Change Happened');
    });
});
</script>

4 个答案:

答案 0 :(得分:1)

select

的地方写下input
  $(document).on('change','select[name^="type_book"]',function(){
                            // ^^^^here write select at the place of input
                                alert('Change Happened');
                });

参见 DEMO

答案 1 :(得分:1)

元素选择器input错误,应为select

$(document.body).on('change', 'select[name^="type_book"]', function () {
    alert('Change Happened');
});

演示:Fiddle

答案 2 :(得分:1)

你可以这样做:

$(document.body).on('change', ':input[name^="type_book"]', function () {
    alert('Change Happened');
});

此处,:input选择器将选择所有输入,textarea,select和按钮元素。

但是,在您的情况下,您使用的input选择器仅选择input类型元素,而不选择select元素。因此,您的代码无效。

答案 3 :(得分:0)

Fiddle DEMO

选择器input错误,请将其更改为select

$(document.body).on('change', 'select[name^="type_book"]', function () {
    alert('Change Happened');
});