jQuery在单击按钮或onchange下拉列表上运行相同的功能

时间:2017-06-30 13:33:18

标签: javascript jquery html

我有以下代码,它在单击按钮上工作正常,但我也希望它在我的下拉列表的更改事件上执行。

 $("select#search_status").change() //i want same execution for it do i need to duplicate whole code ?


$('.search-btn-cls').click(function () {
    var search_text = $('#search_text').val();

    search_val = true;
    initiatePagination();
    // ajaxSortPaginationSearch();
    // show_per_page();
    // getpagination();

    if (search_text.length > 2 || search_text.length < 1) {
        ajaxSortPaginationSearch();
        show_per_page();
        getpagination();
    } else {
        alert('Please enter minimum 3 serach character.');
        $('#search_text').focus();
    }

});

2 个答案:

答案 0 :(得分:4)

不是使用匿名函数进行事件处理,而是创建一个函数并在两种情况下调用它,即单击和更改。

// Create a function.
function handleDropdown() {
    var search_text = $('#search_text').val();

    search_val = true;
    initiatePagination();
    // ajaxSortPaginationSearch();
    // show_per_page();
    // getpagination();

    if (search_text.length > 2 || search_text.length < 1) {
        ajaxSortPaginationSearch();
        show_per_page();
        getpagination();
    } else {
        alert('Please enter minimum 3 serach character.');
        $('#search_text').focus();
    }

}
// Now call the function.
$('.search-btn-cls').click(handleDropdown);
$("select#search_status").change(handleDropdown);

答案 1 :(得分:0)

试试这个

//Call both events with same function that you want to execute.
$('.search-btn-cls').click(main);
$('.search-btn-cls').change(main);

        function main(){
            var search_text = $('#search_text').val();

            search_val = true;
            initiatePagination();

            if (search_text.length > 2 || search_text.length < 1) {
                ajaxSortPaginationSearch();
                show_per_page();
                getpagination();
            } else {
                alert('Please enter minimum 3 serach character.');
                $('#search_text').focus();
            }
        }