我有一個包含兩個選項的下拉選單public和private. 我正在使用 ajax 從資料庫中獲取資料并顯示在表單欄位中。所以我在 JQuery 中撰寫了腳本來設定要選擇的值。但它只能正常作業兩次,比如只有一次 forpublic和第一次 for private.
這是我的代碼
HTML
<select name="insurance" class="form-select" id="insurance" required>
<option value="">--Select--</option>
<?php $insurance = App::make("App\Http\Controllers\AppointmentsController")->getInsurance(); ?>
@foreach($insurance as $ins)
<option value="{{ $ins->id }}">{{ $ins->insurance }}</option>
@endforeach
</select>
查詢
if(data['insurance'] != ''){
console.log(data['insurance']); // showing correct value
$('#insurance > option[value="' data["insurance"] '"]').attr('selected',true);
}
這data['insurance']是我來自 ajax 的結果陣列值。
- 首先我用保險獲取資料
private- 作業正常 - 然后用保險取行
public- 作業正常 - 再次獲取資料
private- 不作業(僅顯示最后狀態)
如果嘗試獲取任何值的記錄 - 不作業。
只有前兩次,它作業正常
uj5u.com熱心網友回復:
您還應該通過 jquery 洗掉其他選項的選定屬性。
正如我在第一次被選中時看到的那樣,由于兩個都被選中,第一個將在表單中保持選中狀態。
嘗試這樣的事情:
if(data['insurance'] != ''){
if(data['insurance'] == 'public'){
$('#insurance > option[value="private"]').removeAttr('selected');
$('#insurance > option[value="public"]').attr('selected', true);
}
else{
$('#insurance > option[value="public"]').removeAttr('selected');
$('#insurance > option[value="private"]').attr('selected', true);
}
}
uj5u.com熱心網友回復:
我解決了添加單行代碼的問題。實際的問題是,所選選項始終保持選中狀態。如果我選擇一個選項,然后第二個選項都將被標記為已選中。所以在接下來的呼叫中,第一個選項將顯示,因為兩者都被選中。因此,我添加了代碼以在將選擇分配給新選項之前洗掉選擇。
這是我更正的代碼:
if(data['insurance'] != ''){ console.log(data['insurance']);
$('#insurance').find('option:selected').attr('selected', false);
$('#insurance > option[value="' data["insurance"] '"]').attr('selected',true);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/348599.html
上一篇:如何將Watson服務鏈接到IBMCloud中的檔案夾,如何在AJAXJQuery上使用它?
下一篇:如何每小時彈出模態?
