0

ドロップダウン メニューから値を抽出し、その値を 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() は、スペースをアンダースコアに正常に置き換えていることを示しているため、なぜこれを行っているのかわかりません。

4

2 に答える 2

0

ここでは jquery は必要ありません。select 要素の値を取得し、その上で replace() を呼び出すだけです。

var selectedOption = this.value.replace(/ /g, "_");

ワーキングデモ

于 2013-08-07T16:26:45.727 に答える