Jquery不会通过.change发送

时间:2012-09-18 15:31:09

标签: jquery json

我得到了以下jquery代码:

$('.sub').change(function(event) {
$.post( 'get_products.php', $("#products_search").serialize(),
  function( data ) {
      console.log(data);
  },
  'json'
);
});

并有像

这样的字段
<input type="text" name="lkj" id="lkj" class="sub" value="" onfocus="if(this.value == 'Search keyword') {this.value=''}" onblur="if(this.value == ''){this.value ='Search keyword'}"  />

表格是这样的:

<form action="#" method="POST" name="products_search" id="products_search">

当我更改lkj中的值时,jquery ajax调用不会触发。

2 个答案:

答案 0 :(得分:0)

尝试使用此示例绑定到on('change')事件:

<form action="#" method="POST" name="products_search" id="products_search">
    <input type="text" name="lkj" class="sub" placeholder="Search keyword"  />
</form>​
<script type="text/javascript">
$(function(){
    $('.sub').on('change', function(event){
        $.post( 
            'get_products.php', 
            $("#products_search").serialize(),
            function( data ) {
              console.log(data);
            },
            'json'
        );          
    });​
});
</script>

答案 1 :(得分:0)

尝试使用超时的密钥:

$('.sub').keyup(function(event) {

    if( $(this).timeout ) clearTimeout( $(this).timeout );

    $(this).timeout = setTimeout(function(){

        alert('posting...');

        $.post( 'get_products.php', $("#products_search").serialize(),
            function( data ) {
                console.log(data);
            }, 'json'
        );

    },250);

});

确保将其包裹在$(function() { ... });