停止发回的select.change

时间:2010-08-10 19:23:42

标签: javascript asp.net jquery postback

这个问题是更大页面的一部分,但我已经简化了代码,以提供我正在谈论的简单示例。基本上我有一个ASP下拉列表,AutoPostBack =“true”,我想做一些javascript客户端,可以在必要时停止回发。但是,我不能让它停止回发。

<script type="text/javascript">
$(document).ready(function()
{
    $("#ddl").bind('change', function() {
        return false;
    });
});
</script>

<select id="ddl" onchange="form.submit()">
    <option value="">Item 1</option>
    <option value="">Item 2</option>
    <option value="">Item 3</option>
    <option value="">Item 4</option>
    <option value="">Item 5</option>
</select>

4 个答案:

答案 0 :(得分:1)

这是我的解决方法(Firefox可以工作,IE 7/8有效):

$(function() {
    var $select = $('#ddl'), tmp = $select.attr('onchange');

    $select.attr('onchange', '');

    $select.change(function() {
        // If you want to postback:
        tmp();
    });
});

Simple删除HTML处理程序并将其放入变量中。然后你可以注册你的更改功能,如果你想调用自动回发功能,你可以。

答案 1 :(得分:0)

试试这个:

$(document).ready(function() {
  $('#ddl').attr('onchange', '').change(function() {
    if (0 !== +$(this).attr('selectedIndex')) {
      this.form.submit();
    }
    return false;
  });
});

答案 2 :(得分:0)

$("#ddl").change(function(e) {
    e.preventDefault();
});

答案 3 :(得分:-2)

$("#ddl").change(function() {
    // Do some javascript
    return false;
});

此外,如果从select元素

中取出onChange属性,它可能会有所帮助