0

私は2つのフォーム要素を持っています。1 つは、getJSON 呼び出しによって動的に入力されるドロップダウン リストです。もう 1 つは、標準の入力テキスト ボックスです。

フォームが読み込まれると、ドロップダウン リストにデータが入力されます。これは承認フォームであるため、テキスト ボックスには「通常」値が入力されます。

私がやろうとしているのは、テキスト ボックスの値と一致するドロップダウン リストの値を選択したオプションにすることです。これは、このタイプの他のドロップダウンでも機能しますが、この場合、ドロップダウン値とテキスト ボックス値のスペースに問題があると思います。

私が抱えている問題では、テキスト ボックスの値が "Big Red Barn" になっています。(引用符なし) ドロップダウン リストの値の 1 つに、"Big Red Barn" という値もあります。(引用符なし) これが選択されているはずです。

形:

<select name="cu_vendors" id="cu_vendors">
</select>

<input type="text" name="ven_name" id="ven_name" />

ドロップダウン リストは問題なく表示されます。

JQuery:

$.getJSON("get-cu-vendors.html", function(data){
  $('#cu_vendors').html('');
  if(data && data.length > 0){
    $('#cu_vendors').append("<option value='' class='red'>Required</option>");
        $.each(data, function(key, value){
        $("#cu_vendors").append("<option value=\""+$.trim(value)+"\">"+value+"</option>");                  
    });         
  }else{
   $('#cu_vendors').html('');
  }
});
 $("#cu_vendors option[value="+ $('#ven_name').val() +"]").attr('selected', 'selected');

構文エラーが発生しますが、それが何であるかはわかりません:

Error: Syntax error, unrecognized expression: #cu_vendors option[value=Big Red Barn]

だから、ここではスペースが問題だと思っています。上記の最後の行で $('#ven_name').val() を使用するときに、JQuery でこれらの値を引用する方法はありますか?

助けてくれてありがとう。

4

3 に答える 3

1

2 つのこと..まず、選択したオプションを設定する行は、$.getJSONコールバック内にある必要があります。そうしないと、ajax 呼び出しが終了する前に実行されます。次に、セレクターの値にスペースが含まれているため、その値を引用する必要があります。

$.getJSON("get-cu-vendors.html", function (data) {
    $('#cu_vendors').html('');
    if (data && data.length > 0) {
        $('#cu_vendors').append("<option value='' class='red'>Required</option>");
        $.each(data, function (key, value) {
            $("#cu_vendors").append("<option value=\"" + $.trim(value) + "\">" + value + "</option>");
        });
        $("#cu_vendors option[value='" + $('#ven_name').val() + "']").attr('selected', 'selected');
    } else {
        $('#cu_vendors').html('');
    }    
});

エラー メッセージから、セレクターが次のようになっていることがわかります。

#cu_vendors option[value=Big Red Barn]

次のようにする必要がある場合:

#cu_vendors option[value="Big Red Barn"]
于 2013-09-20T14:48:29.690 に答える
0

セレクターの周りに引用符がないと思います:

$("#cu_vendors option[value='"+ $('#ven_name').val() +"']").attr('selected', 'selected');
于 2013-09-20T14:49:36.200 に答える
0
 $("#cu_vendors option[value='"+ $('#ven_name').val() +"']")

トリックを行う必要があります。

スペースは問題ありません。

'の使用に注意してください。「値 = スペースを含むもの」ではなく、「値= 'スペースを含むもの'」が必要です。

また、誰かがすでに言ったように、単純な引用符が欠落しているというエラー メッセージからわかります。

于 2013-09-20T14:47:46.540 に答える