如何检查url在jQuery中是否没有查询字符串?

时间:2016-07-18 08:33:18

标签: php jquery html css wordpress

我正在WordPress中编辑表单。我希望我的jquery脚本在url没有查询字符串时执行。

网址不应包含如下查询字符串:http://127.0.0.1/mybetabizopi/login/?action=lostpassword

我只希望我的脚本在url是这样的时候运行或者没有查询字符串: http://127.0.0.1/mybetabizopi/login/

这是我目前的剧本:

var j = jQuery.noConflict();
j(function() {


    j('#login #user_login').attr('placeholder', 'Username');
    j('#login #user_pass').attr('placeholder', 'Password');

    j('#login #user_login').addClass('form-control');
    j('#login #user_pass').addClass('form-control');

    j('#login #loginform label').wrap( "<div class='input-group'></div>" );


    j('#login .form-control').each(function() {
        j(this).insertAfter(j(this).parent());
    });

    j('#loginform .input-group > label').remove();

    j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span>').insertBefore('#user_login');

    j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>').insertBefore('#user_pass');


});

感谢任何帮助。

4 个答案:

答案 0 :(得分:4)

您可以使用indexOf上的window.location.href来检查是否有?个字符。

请注意,您可以根据需要为提供给document.ready处理程序的jQuery实例命名,因此您仍然可以在该函数范围内使用$变量,即使不再使用全局$指向jQuery。此外,您可以通过缓存和重新使用选择器来提高jQuery代码的效率。试试这个:

jQuery(function($) {
  if (window.location.href.indexOf('?') == -1) { // no querystring exists
    $('#login #user_login').attr('placeholder', 'Username').addClass('form-control');
    $('#login #user_pass').attr('placeholder', 'Password').addClass('form-control');

    $('#login #loginform label').wrap("<div class='input-group'></div>");

    $('#login .form-control').each(function() {
      $(this).insertAfter($(this).parent());
    });

    $('#loginform .input-group > label').remove();

    $('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span>').insertBefore('#user_login');
    $('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>').insertBefore('#user_pass');
  }
});

答案 1 :(得分:2)

您可以使用位置对象的搜索属性来执行此操作。

var querystring=window.location.search;
alert(querystring);

它将返回URL的查询字符串,使用它来检查URL是否具有查询字符串,并且仅当jQuery代码为空时才执行它。

像这样,

if(querystring=="") {
    // Execute jQuery code.
}

答案 2 :(得分:1)

您可以像这样简单地使用Javascripts location.search

        <script type="text/javascript">
            var j = jQuery.noConflict();
            j(function() {

                var hasQuery    = (location.search && location.search != undefined)?true : false;
                if(!hasQuery){

                    j('#login #user_login').attr('placeholder', 'Username');
                    j('#login #user_pass').attr('placeholder', 'Password');                 
                    j('#login #user_login').addClass('form-control');
                    j('#login #user_pass').addClass('form-control');                    
                    j('#login #loginform label').wrap( "<div class='input-group'></div>" );


                    j('#login .form-control').each(function() {
                        j(this).insertAfter(j(this).parent());
                    });

                    j('#loginform .input-group > label').remove();

                    j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span>').insertBefore('#user_login');

                    j('<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>').insertBefore('#user_pass');                 
                }               
            });
        </script>

答案 3 :(得分:1)

您可以使用以下函数来检查是否存在查询字符串

function checkQueryStringExists()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    if(hashes.length>0)
        return true;
    else 
    return false;
}