【发布时间】:2022-10-17 23:35:04
【问题描述】:
所以可以说我的问题是我有一个下拉列表,其中包含 2 个值,例如 values1 和 value2,当我单击 value1 时,应该显示字段 1,当我选择 value2 时,字段 2 会像这样显示
function acc_type() {
if (jq('#dropdownID').val() === "") {
jq('#field1').hide();
jq('#field2').hide();
}
jq('#dropdownID').on('change', function() {
let acct_type = jq('#dropdownID option:selected').text();
if (acct_type == "value1") {
jq('#field1').show();
jq('#field2').hide();
} else if (acct_type == "value2") {
jq('#field1').hide();
jq('#field2').show();
}
});
}
我的任务是当某些字段出现时,使它们成为强制性的,存在带有错误的现有函数调用,我需要添加但我如何使它工作..我的尝试如下所示
if (jq('#field1').show() && !jq('#field2').val()) {
addErr(`A value for <a href="javascript:void(0)" onlick="jq('#field2').focus()">Field 2</a> is required.<br>`);
} else if (jq('#field2').show() && !jq('#field1').val()) {
addErr(`A value for <a href="javascript:void(0)" onlick="jq('#field1').focus()">field 1</a> is required.`);
}
代码的第一部分工作正常,“addERR()”也很好,但我想不出任何方法来完成我的工作,比如当 1 被隐藏而其他部分显示为空字段时,它应该抛出错误。 如果有人可以提供帮助,请尽快查看。这是我关于 Stack 的第一个问题。
【问题讨论】:
-
如果您将所有内容包装在
<form>中并在<input>上添加required或其他任何内容(您的问题没有任何HTML(这就是我不回答的原因)),那么它会在<form>已提交(当然已停止提交)。 -
.show()说“使这个可见”而不是“这个可见”并且总是返回一个 jquery -object/collection(即使是空的)所以总是真实的 - 检查一个元素是否可见你需要if ($(#field1").is(":visible")... -
@freedomn-m,是的,你是对的,这就是我所缺少的。我喜欢从未尝试过“这是可见的”事情,所以这就是为什么我被困在这个问题上。不过还是非常感谢
标签: jquery if-statement show-hide