目标
检查是否选择了1列下拉列表并在语义UI中启用该按钮。 (参见下面的工作示例)。我项目的最终版本将有6个“列”/“屏幕”。
问题
不能更容易/更干净吗?正如您在小提琴中看到的那样,它为每一列运行代码。
我是如何运作的
不要问我哈哈...经过100次尝试多次if和其他工作后,我最终用“$(this)”为当前班级分配了一个ID。之后,它会查看具有相同类的所有元素的ID是否为空。如果元素ID都不为空,则启用该按钮。我使用下面的代码使它工作。感谢:Enable/Disable Button when multiple dropdown value is selected
在stackoverflow上找到的代码
$(function () {
$('.picker').on('change', function () {
var SelectList = $('.picker');
//Here i'll find how many dropdown are present
for (var i = 0; i < SelectList.length ; i++) {
//Here i need to check each dropdown value whether it selected or not
if (SelectList[i].value != "") {
//If all dropdown is selected then Enable button
$("#Testing").attr("disabled", false);
}
else {
//Disable button if any dropdown is not selected
$("#Testing").attr("disabled", true);
}
}
});
});
以上代码,但根据我的意愿编辑
$(function () {
$('#myform2').on('change', function () {
var SelectList = $('.ui.dropdown.selection.thisistwo');
for (var i = 0; i < SelectList.length ; i++) {
if (SelectList[i].id != "") {
$(".ui.right.labeled.icon.button.n2").attr( "disabled", false);
}
else {
$(".ui.right.labeled.icon.button.n2").attr("disabled", true);
}
}
});
});
正如你所看到的,我使用“SelectList [i] .id”来检查id是否是emtpy:!=“”
的jsfiddle
https://jsfiddle.net/StaphWar/kLy7ow61/62/
更新 - &gt;由NERBIZ&lt; 3
修复刚才发现这也不起作用。如果您从底部的下拉列表中选择了某些内容,则会启用没有选择上述下拉列表的按钮。我刚刚在我的项目中实现了它。 -.-
新目标 可选字段。因此,如果有人选择“否”,则会隐藏2个下拉菜单并启用验证和下一个按钮。不是很难吗?我试过的大多数工作都没有。当在“是”和“否”之间切换时,按钮迟早会停止/启用。或者,当选择“是”时,最终验证不起作用。
尝试了很多事情,直到我犯了一个实际有效的错误。
(($(SelectList[i]).dropdown('get value') == "") && (THISISNOTHING == 'yes' ))
你看到“THISISNOTHING”的地方我做了一个错字,神奇地让它发挥作用。直到我看着控制台。由于“THISISNOTHING”没有定义。到目前为止,项目代码有0个错误。这有点触发了我的强迫症哈哈。
新目标:JSFiddle正常但有控制台错误 https://jsfiddle.net/StaphWar/kLy7ow61/170/
答案 0 :(得分:2)
我编辑了你的小提琴: https://jsfiddle.net/kLy7ow61/88/
&#39;禁用&#39;以false开头,如果列中的任何下拉列没有值,则变为true。
$(function () {
$('#myform').on('change', function () {
var SelectList = $('.ui.dropdown.selection.thisisone');
var disable = false;
for (var i = 0; i < SelectList.length ; i++) {
if ($(SelectList[i]).dropdown('get value') == "") {
disable = true;
}
}
$(".ui.right.labeled.icon.button.n1").attr( "disabled", disable);
});
});