Из-за того, что дубликаты имен параметров не позволяют использовать URLSearchParams
, я бы разделил на &
и =
для генерации пар ключ / значение.Для каждого вы можете использовать селекторы атрибутов для нацеливания и проверки соответствующих элементов.
const url = 'http://127.0.0.1:8000/search/?name=&language=1&cast=3';
function existingUrl(fullUrl) {
let query = fullUrl.split("?")[1]; //?language=1&cast=3
query.split("&").forEach(param => { //split on "&"
let [name, value] = param.split("="); //split on "=" to get name/value pairs
let valueSelector = value ? `[value=${value}]` : ''; //account for null value
$(`input[name=${name}]${valueSelector}`).prop("checked", true); //check corresponding input
});
}
existingUrl(url);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="get">
<input type="text" name="name" id="name" hidden> language
<input type="checkbox" name="language" class="language" id="1" value="1"> cast
<input type="checkbox" name="cast" class="cast" id="2" value="1"> language
<input type="checkbox" name="language" class="language" id="3" value="2"> cast
<input type="checkbox" name="cast" class="cast" id="4" value="3">
<input type="submit" value="submit">
</form>