フォームを送信した後にユーザーをリダイレクトするときに問題が発生します。このフォームは、ユーザーが位置、評価、および専門分野に基づいて医師を除外することを可能にする役割を果たします。ここでは、フォームと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- string/ –
フォームを通常通りに提出するのではなく、ここで最初にJSを妨害しているのはなぜですか?適切なメソッドとアクションを指定するだけで、JSを最初から始める必要はありません。 – CBroe
@CBroe私はもともと 'action ="/doctors "を持っていましたが、私はどのようにしてクエリパラメータを変更できるのかわかりません。 – calviners