在HTML和Javascript中,我试图创建一个符合以下规则的条件,这是有问题的:
如果第一个文本框包含某个单词,请禁用以下下拉菜单.如果它不包含特定的单词,保持启用它。
到目前为止,我已经有了这个代码
var noSample = "HW8020";
const interval = setInterval(function() {
// method to be executed;
function codeCheck() {
var x = document.getElementById("form-RequestAQuoteUK-9bbb_Products_Interest_Value").value;
}
function validateSample() {
if ( x == noSample) {
document.getElementById(
"form-RequestAQuoteUK-9bbb_DropDown_Samples_SelectedValue"
).disabled = true;
} else {
document.getElementById(
"form-RequestAQuoteUK-9bbb_DropDown_Samples_SelectedValue"
).disabled = false;
}
}
}, 5000);noSample变量是当输入到文本字段时将禁用下拉列表的代码。I不是我命名的选择,但我对Javascript并不熟悉,我正试图解决我工作的公司的一个问题!
有什么想法吗?
发布于 2022-10-11 13:12:54
您应该使用事件input而不是setInterval,并使用indexOf检查input.value是否包含某些值。
var noSample = "HW8020";
let input = document.getElementById(
"form-RequestAQuoteUK-9bbb_Products_Interest_Value",
);
input.addEventListener("input", () => {
validateSample(input.value)
});
function validateSample(inputValue) {
let selectEl = document.getElementById(
"form-RequestAQuoteUK-9bbb_DropDown_Samples_SelectedValue",
);
if (inputValue.indexOf(noSample) > -1) {
selectEl.disabled = true;
} else {
selectEl.disabled = false;
}
}发布于 2022-10-11 13:13:29
按照注释中的建议,您可以向Products_Interest_Value输入中添加一个事件侦听器,然后根据是否匹配noSample值启用或禁用下拉列表。
const noSample = "HW8020";
document.querySelector("#form-RequestAQuoteUK-9bbb_Products_Interest_Value").addEventListener("input", e => {
document.querySelector("#form-RequestAQuoteUK-9bbb_DropDown_Samples_SelectedValue").disabled = (e.target.value == noSample);
});
https://stackoverflow.com/questions/74028429
复制相似问题