プログラムで変更できないselect
があります。一つだけoption
とselect
開始:動的に追加されたオプションに選択値を変更すると、値= ""が発生する
初期HTML:
<select id="clients" name="client">
<option>Existing Clients...</option>
</select>
は、その後、私はクライアントを取得し、select
に追加:
getClients();
function getClients() {
$.get('ajax/get-clients.php')
.done(function(response) {
for (let client of JSON.parse(response)) {
addClientOption(client.id, client.company_name);
}
})
.fail(function(response) {
console.log(response);
});
}
function addClientOption(id, name) {
let newOption = document.createElement('option');
newOption.value = parseInt(id);
newOption.text = name;
document.getElementById('clients').appendChild(newOption);
}
を今ではいくつかのオプションを持っています
<select id="clients" name="client">
<option>Existing Clients...</option>
<option value="6">Number1</option>
<option value="77">SecondROUND</option>
<option value="14">Whips Dat Llama</option>
</select>
私はその値を変更しようとしています:
console.log(document.getElementById('clients').value); // =>"Existing Clients..."
document.getElementById('clients').value = 6; // expecting "Number1"
console.log(document.getElementById('clients').value); // =>""
// And the select still shows the "Existing Clients..." option.
私はselect
へoptions
をハードコーディングしようと、期待どおりに動作します。それらを動的に追加することが問題と思われます。私は回避策を考え出すことができますが、誰かがなぜこれが起こっているのか説明できますか?
それは私の作品:https://jsfiddle.net/barmar/3ekvaxxr/3/ – Barmar
は、あなたが 'AJAXの応答が受信された後.value'に代入していますか?コード内のその割り当てはどこですか? – Barmar
こんにちは、Barmar、フィドルのおかげで。代入はgetClients()の呼び出しの直後です。 '$(function(){getClients(); document.getElementById( 'clients')。value = 6;});' – Rhono