Я пытаюсь построить query parameter
, когда при выполнении поиска мне удалось создать его с помощью поля input
, однако выпадающее меню select
для выбора других значений.jquery select option для построения queryString
<input type="text" id="dd">
<select name="" class="sel">
<option value=""></option>
<option value="Prepare">Prepare</option>
<option value="Ready">Ready</option>
<option value="Cancel">Cancel</option>
</select>
<button onclick="buildQuery()">Build query</button>
JQuery код для построения запросов Парам запроса
function buildQuery(){
var result = "?";
var getVal = $('input#dd').val();
console.log('Input > ', getVal);
var getSelectVal = $('select#sel').val();
if (getVal != null && (getVal != "")) {
let inputValues = getVal
.split("\n")
.filter(function (str) { return str !== "" })
.join("&test=");
// then add it to the overall query string for all searches
result = result + 'test' + "=" + inputValues + "&";
console.log('Results > ', result);
}
Не уверен, как я могу получить значение из select
и построить его подобным образом к моему входу console.log выхода Results > ?test=f&
Поэтому, если вы заполните input
и select
, то в качестве опции он должен ответить на запросParam примерно ?test=inputVal&test=selectVal
или по отдельности ?test=inputVal
или ?test=selectVal
Что я могу сделать, это скопировать всю инструкцию if()
и заменить getVal
на getSelectVal
, но это кажется неэффективным и дублирующим код.
Фактический код -
newSearchParams.properties.forEach(function (inputSearch) {
// first reparse the input values to individual key value pairs
// Checks which field is not null and with empty string (space)
var getVal = $('textarea.input_' + inputSearch.name).val();
var getSelectVal = $('select.select_' + inputSearch.name).val();
if (getVal != null && (getVal != "")) {
let inputValues = getVal
.split("\n")
.filter(function (str) { return str !== "" })
.join("&" + inputSearch.name + "=");
// then add it to the overall query string for all searches
result = result + inputSearch.name + "=" + inputValues + "&";
}
}, this);
// remove trailing '&'
result = result.slice(0, result.length - 1);
return result;
тест = inputVal & test = selectVal действительно i означает одинаковые значения prop 2? –
yes Я пробовал, и выбор действителен и с правильными значениями – MrNew
Это вы пытаетесь достичь https://jsfiddle.net/3wdecqe9/1/, просто не забудьте удалить последний и символ –