JQuery проверить, если URL имеет строку запроса - PullRequest
5 голосов
/ 19 января 2012

Если посещение сайта происходит впервые и не добавлено ни одного запроса или если к URL '? Hos' добавлена ​​только одна строка запроса, например http://hospitalsite/events/Pages/default.aspx?hos=somevalue,, тогда мне нужно применить условие ifусловие else работает нормально. Как проверить, есть ли запрос

$(".hospitalDropDown").change(function(e){
  currentURL=$(location).attr('href');
  if((currentURL == 'http://hospitalsite/events/Pages/default.aspx' or (....)) {
    window.location.href= 'http://hospitalsite/events/Pages/default.aspx'+'?hos='+$(this).val();
  } else {
    window.location.href = ( $(this).val() == "All Hospitals" ) ? 'http://hospitalsite/events/Pages/default.aspx': currentURL +'&hos='+ $(this).val(); 
  }
});

Ответы [ 4 ]

22 голосов
/ 19 января 2012

Думаю, вам понравится это значение:

var queryString = window.location.search;

Если ваш URL был "http://www.google.com/search?q=findme",", то указанная выше переменная queryString будет равна "? Q = findme".

Вы можете проверить, не является ли это непустым, чтобы увидеть, есть ли строка запроса или нет.

2 голосов
/ 19 января 2012

Не совсем уверен во всей строке запроса, но это поможет вам проверить, есть ли отдельные переменные в строке запроса:

var $_GET = {};

document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
    function decode(s) {
        return decodeURIComponent(s.split("+").join(" "));
    }

    $_GET[decode(arguments[1])] = decode(arguments[2]);
});

document.write($_GET["test"]);

На этот вопрос есть еще несколько ответов, которые могут указать вам правильное направление:

как получить переменные GET и POST с помощью JQuery?

0 голосов
/ 19 января 2012

Вот код javascript для получения строки запроса:

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
    return "";
else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

если эта функция возвращает ноль, то строка запроса отсутствует, вы можете напрямую вызвать эту функцию.

0 голосов
/ 19 января 2012

Попробуйте это

$(".hospitalDropDown").change(function(e){
        if(location.href.indexOf('?') == -1) {
            window.location.href= 'http://hospitalsite/events/Pages/default.aspx'+'?hos='+$(this).val();
            }
            else{
                window.location.href = ( $(this).val() == "All Hospitals" ) ? 'http://hospitalsite/events/Pages/default.aspx': location.href +'&hos='+ $(this).val(); }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...