所以...我很难弄清楚如何解决这个 javascript 问题。
所以,我一直在制作注册表单,用户在其中输入他们的学生 ID,ajax 将自动响应以选择他们的学位(让我们这样说)。
有 4 度,有 3 位主代码,如下由变量 si、ti、dsi 和 dti 给出。
var si = ['510'] // Selain 510
var ti = ['520'] // Selain 520
var dsi = ['310'] // Selain 310
var dti = ['320'] // Selain 320
if(si.indexOf($(this).val().substr(0,3)) < 0){
$('#dftrprodi option[value="S1 - Teknik Informatika"]').attr("selected", "selected");
}
else if (ti.indexOf($(this).val().substr(0,3)) < 0){
$('#dftrprodi option[value="S1 - Sistem Informasi"]').attr("selected", "selected");
}
else if (dti.indexOf($(this).val().substr(0,3)) < 0){
$('#dftrprodi option[value="D3 - Teknik Informatika"]').attr("selected", "selected");
}
510 和 520 的 3 位代码效果很好,选择了正确的等级。但在第三个“else if”时,它选择级别“S1 - Teknik Informatika”而不是“D3 - Teknik Informatika”
如何解决?好吧,我以为“310”将与“510”相同,并且会选择 D3 而不是 S1,但事实并非如此。
如果需要的话,这是我的观点
<select id="dftrprodi" name="studi">
<option value="S1 - Sistem Informasi">S1 - Sistem Informasi</option>
<option value="S1 - Teknik Informatika">S1 - Teknik Informatika</option>
<option value="D3 - Sistem Informasi">D3 - Sistem Informasi</option>
<option value="D3 - Teknik Informatika">D3 - Teknik Informatika</option>
</select>
示例(简单来说):
If
user/student type "510-xxxxx" it select 'S1 - Sistem Informasi'
else if
user/student type "520-xxxxx" it select 'S1 - Teknik'
else if
user/student type "310-xxxxx" it select 'D3 - SI (for short)'
else if
user/student type "320-xxxxx" it select 'D3 - TI'
编辑: 我已经删除了禁用的输入,因为禁用时,该值不会发送到数据库
最佳答案
逻辑被破坏了
考虑$(this).val().substr(0,3)
是否为310
这使得第一个“if”为真 - else if
永远不会运行
这是我认为可能有效的方法
var courses = {
'510': 'S1 - Sistem Informasi',
'520': 'S1 - Teknik Informatika',
'310': 'D3 - Sistem Informasi',
'320': 'D3 - Teknik Informatika'
};
$('#dftrprodi option[value="' + courses[$(this).val().substr(0,3)] + '"]').attr("selected", "selected");
关于javascript - 如何使用 jQuery 获取 html select 元素的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42466036/