Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用querystring中的变量触发jquery调用_Javascript_Jquery_Asp.net Mvc 3_Search Engine - Fatal编程技术网

Javascript 如何使用querystring中的变量触发jquery调用

Javascript 如何使用querystring中的变量触发jquery调用,javascript,jquery,asp.net-mvc-3,search-engine,Javascript,Jquery,Asp.net Mvc 3,Search Engine,有一个问题,我要重建我的网站上的搜索功能,但我不能让它工作,因为我想。问题是,当出现带有查询字符串“q”的页面时,我希望填写搜索框,然后开始搜索。我已经反复测试过了,但没法让它工作。如果您在搜索框中键入内容并等待500毫秒,搜索就会起作用,但我不会在自动填写搜索框后触发呼叫 这是不使用querystring特性的代码 <script type="text/javascript"> $(document).ready(function () { // 1 jQuery("abb

有一个问题,我要重建我的网站上的搜索功能,但我不能让它工作,因为我想。问题是,当出现带有查询字符串“q”的页面时,我希望填写搜索框,然后开始搜索。我已经反复测试过了,但没法让它工作。如果您在搜索框中键入内容并等待500毫秒,搜索就会起作用,但我不会在自动填写搜索框后触发呼叫

这是不使用querystring特性的代码

<script type="text/javascript">
$(document).ready(function () { // 1
    jQuery("abbr.timeago").timeago();
    $("tr:even").addClass("even");
    $("tr:odd").addClass("odd");
    var q = getQuerystring('q', '');

    $("input#q").val(q);
}); // 1

$(document).ready(
    function () { // 1
        // Hide update box  
        $('#updater').hide();

        var retrieveData = function (path, query, funStart, funEnd, funHandleData) 
        { // 2
            // for displaying updater 
            funStart();
            // retrieve JSON result 
            $.getJSON(
                path,
                { name: query },
                function (data) 
                { // 3
                    // handle incoming data 
                    funHandleData(data);
                    // for hiding updater 
                    funEnd();
                } // 3
        ); // 2
    }; // 1

    $(function () 
    { // 1
        var timer;

        $("#q").keyup(function () 
        { // 2
            clearTimeout(timer);
            var ms = 500; // milliseconds
            var val = this.value;
            timer = setTimeout(
            function () 
            { // 3
                retrieveData('/Search/FindPaste/', $('#q')[0].value,
                    function () { $('#updater').show(); },
                    function () { $('#updater').hide(); },
                    function (data) 
                    { // 4
                        $('#codelist > tr').remove();
                        for (s in data) 
                        { // 5
                            var code = data[s];
                            var d1 = new Date(parseInt(code.Created.substr(6)));

                            $('#codelist').append('<tr><td><a href="http://www.pastebucket.com/' + code.CodeID + '">' + code.Title + '</a></td><td><abbr class="timeago" title="' + d1.toString('yyyy-MM-dd HH:mm:ss') + '">' + d1.toString('yyyy-MM-dd HH:mm:ss') + '</abbr></td><td>' + code.Syntax + '</td><td>' + code.Views + '</td><td><a href="http://www.pastebucket.com/User/' + code.Username + '">' + code.Username + '</a></td></tr>');
                            jQuery("abbr.timeago").timeago();
                            $("tr:even").addClass("even");
                            $("tr:odd").addClass("odd");
                        } // 5
                    }) // 4
                }, ms); // 3
            }); // 2
        }); // 1
    }

);

function getQuerystring(key, default_) 
{
    if (default_ == null) default_ = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return default_;
    else
        return qs[1];
}

$(文档).ready(函数(){//1
jQuery(“缩写为timeago”).timeago();
$(“tr:偶数”).addClass(“偶数”);
$(“tr:odd”).addClass(“odd”);
var q=getQuerystring('q','');
$(“input#q”).val(q);
}); // 1.
$(文件)。准备好了吗(
函数(){//1
//隐藏更新框
$(“#更新程序”).hide();
var retrieveData=函数(路径、查询、funStart、funEnd、funHandleData)
{ // 2
//用于显示更新程序
funStart();
//检索JSON结果
$.getJSON(
路径
{name:query},
功能(数据)
{ // 3
//处理传入数据
funHandleData(数据);
//用于隐藏更新程序
funEnd();
} // 3
); // 2
}; // 1
$(函数()
{ // 1
无功定时器;
$(“#q”).keyup(函数()
{ // 2
清除超时(计时器);
var ms=500;//毫秒
var val=该值;
定时器=设置超时(
函数()
{ // 3
retrieveData('/Search/findpast/',$('#q')[0]。值,
函数(){$('#updater').show();},
函数(){$('#updater').hide();},
功能(数据)
{ // 4
$('#codelist>tr')。删除();
用于(数据中的)
{ // 5
var代码=数据[s];
var d1=新日期(parseInt(code.Created.substr(6));
$('#代码列表')。附加('');
jQuery(“缩写为timeago”).timeago();
$(“tr:偶数”).addClass(“偶数”);
$(“tr:odd”).addClass(“odd”);
} // 5
}) // 4
},ms);/3
}); // 2
}); // 1
}
);
函数getQuerystring(键,默认值)
{
如果(默认值=null)默认值;
key=key.replace(/[\[]/,“\\\[”)。replace(/[\]]/,“\\\]”);
var regex=new RegExp(“[\\?&]”+key+“=([^&\]*)”;
var qs=regex.exec(window.location.href);
如果(qs==null)
返回默认值;
其他的
返回qs[1];
}

解决方案

  <script type="text/javascript">
    $(document).ready(function () { // 1

    }); // 1

    $(document).ready(function () {
        // Hide update box  
        $('#updater').hide();

        var retrieveData = function (path, query, funStart, funEnd, funHandleData) { // 2
            // for displaying updater 
            funStart();
            // retrieve JSON result 
            $.getJSON(
                path,
                { name: query },
                function (data) { // 3
                    // handle incoming data 
                    funHandleData(data);
                    // for hiding updater 
                    funEnd();
                } 
            ); 
        }; 

        var timer;

        $("#q").keyup(function () { // 2
            clearTimeout(timer);
            var ms = 500; // milliseconds
            var val = this.value;
            timer = setTimeout(
        function () { // 3
            retrieveData('/Search/FindPaste/', $('#q')[0].value,
                function () { $('#updater').show(); },
                function () { $('#updater').hide(); },
                function (data) { // 4
                    $('#codelist > tr').remove();
                    for (s in data) { // 5
                        var code = data[s];
                        var d1 = new Date(parseInt(code.Created.substr(6)));

                        $('#codelist').append('<tr><td><a href="http://www.pastebucket.com/' + code.CodeID + '">' + code.Title + '</a></td><td><abbr class="timeago" title="' + d1.toString('yyyy-MM-dd HH:mm:ss') + '">' + d1.toString('yyyy-MM-dd HH:mm:ss') + '</abbr></td><td>' + code.Syntax + '</td><td>' + code.Views + '</td><td><a href="http://www.pastebucket.com/User/' + code.Username + '">' + code.Username + '</a></td></tr>');
                        jQuery("abbr.timeago").timeago();
                        $("tr:even").addClass("even");
                        $("tr:odd").addClass("odd");
                    } // 5
                }) // 4
        }, ms); // 3
        }); // 2

        jQuery("abbr.timeago").timeago();
        $("tr:even").addClass("even");
        $("tr:odd").addClass("odd");
        var q = getQuerystring('q', '');

        $('input#q').val(q).keyup()

    }
);

function getQuerystring(key, default_) {
    if (default_ == null) default_ = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return default_;
    else
        return qs[1];
}


</script>

$(文档).ready(函数(){//1
}); // 1.
$(文档).ready(函数(){
//隐藏更新框
$(“#更新程序”).hide();
var retrieveData=函数(路径、查询、funStart、funEnd、funHandleData){//2
//用于显示更新程序
funStart();
//检索JSON结果
$.getJSON(
路径
{name:query},
函数(数据){//3
//处理传入数据
funHandleData(数据);
//用于隐藏更新程序
funEnd();
} 
); 
}; 
无功定时器;
$(“#q”).keyup(函数(){//2
清除超时(计时器);
var ms=500;//毫秒
var val=该值;
定时器=设置超时(
函数(){//3
retrieveData('/Search/findpast/',$('#q')[0]。值,
函数(){$('#updater').show();},
函数(){$('#updater').hide();},
函数(数据){//4
$('#codelist>tr')。删除();
对于数据中的(s){//5
var代码=数据[s];
var d1=新日期(parseInt(code.Created.substr(6));
$('#代码列表')。附加('');
jQuery(“缩写为timeago”).timeago();
$(“tr:偶数”).addClass(“偶数”);
$(“tr:odd”).addClass(“odd”);
} // 5
}) // 4
},ms);/3
}); // 2
jQuery(“缩写为timeago”).timeago();
$(“tr:偶数”).addClass(“偶数”);
$(“tr:odd”).addClass(“odd”);
var q=getQuerystring('q','');
$('input#q').val(q).keyup()
}
);
函数getQuerystring(键,默认值){
如果(默认值=null)默认值;
key=key.replace(/[\[]/,“\\\[”)。replace(/[\]]/,“\\\]”);
var regex=new RegExp(“[\\?&]”+key+“=([^&\]*)”;
var qs=regex.exec(window.location.href);
如果(qs==null)
返回默认值;
其他的
返回qs[1];
}

只需填充框并触发框上的
change()
事件即可

$('input#q').val(q).change();

编辑:或者在您的情况下,
keyup
事件:
$('input#q').val(q).keyup()

公平地说,您的代码有点混乱。没有理由有多个
$(function(){})呼叫。有可能你在我最好的朋友boundWell JS之前打电话给
.keyup()
:p我从你那里得到的帮助对我来说已经足够让它工作了,谢谢!