我在提交表單後重定向用戶時遇到問題。該表格用於允許用戶根據位置,等級和專業過濾出醫生。這裏是我的表單和JavaScript函數代碼:javascript - 向url添加查詢字符串
<form onsubmit="getDoctors()" id="searchForm">
<div>
<div class="col-sm-3">
<div class="form-group">
<label for="specialty">Specialty:</label>
<select class="form-control" id="specialty">
<option value="">Select</option>
<% specialtyList.forEach(function(specialtyValue){%>
<option value="<%= specialtyValue %>"><%= specialtyValue %></option>
<% }); %>
</select>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label for="rating">Min. Rating:</label>
<select class="form-control" id="rating">
<option value="">Select</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label for="location">Location:</label>
<select class="form-control" id="location">
<option value="">Select</option>
<% locationList.forEach(function(locationValue){%>
<option value="<%= locationValue %>"><%= locationValue %></option>
<% }); %>
</select>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<input type="submit" class="btn btn-success" value="Search">
</div>
</div>
</div>
</form>
function getDoctors() {
var specialty = document.getElementById('speciality');
var rating = document.getElementById('rating');
var location = document.getElementById('location');
window.location.href("/doctors?specialty=" + specialty.options[specialty.selectedIndex].text + "&rating=" + rating.options[rating.selectedIndex].text + "&location=" + location.options[location.selectedIndex].text);
}
然而,當我提交表單,所有它的URL放入一個空的查詢字符串:/doctors?
有誰知道這是爲什麼發生了什麼?任何幫助深表感謝。
使用'urlencode'傳球'href'之前,請參考以下鏈接https://www.sitepoint.com/jquery-decode-url-字符串/ –
爲什麼你在這裏首先干擾JS,而不是讓表單正常提交?只需指定正確的方法和操作,那麼你就不需要任何JS開始。 – CBroe
@CBroe我原本有'action =「/ doctors」,但我沒有看到我能夠如何改變查詢參數。 – calviners