我有一些代码从下拉菜单中提取值并将该值用作 AJAX 调用中的参数。
代码看起来像这样:
HTML
<select class='FormDropDown ' id='ass-assessmentReason' name='ass-assessmentReason'>
<option value='Emergency'>Emergency</option>
<option value='Follow-up'>Follow-up</option>
<option value='Nurse Call'>Nurse Call</option>
</select>
JS
$('#ass-assessmentReason').change(function() {
var selectedOption = $(this).find(":selected").text().replace(/ /g,"_"); // Replace whitespace with _ for URL transportation
console.debug(selectedOption);
$.ajax({
type: "POST",
url: "otrFollowUp.php",
data: "followup=" + selectedOption,
我已经切断了其余的代码,但是当所选的下拉选项没有空格时,这绝对可以正常工作,但是它会截断任何带有空格的值。
正如你所看到的,我试图通过用下划线临时替换空格然后在 otrFollowUp.php 中反转它来解决这个问题。我不明白的是,当我查看控制台调试器时,我看到了“Nurse_Call”,但是当我查看它试图调用的 URL 时,我看到了“otrFollowUp.php?followup=Nurse”
由于某种原因,它忽略了下划线,发送带有空格的下拉值,截断正确的选项值并破坏脚本的其余部分。由于在 AJAX 调用之前的 console.debug() 显示它成功地用下划线替换了空格,我很难理解它为什么这样做。