我的js代码有问题。如果没有输入值,我设法禁用了提交按钮,但是现在我想在存在值时再次启用它。 非常感谢
// submit message
submitButton.addEventListener("click", (e) =>{
if(userMessage.value = " ") {
submitButton.setAttribute("disabled", true);
alert("fill field");
} if(userMessage.value != " ") {
submitButton.setAttribute("disabled", false);
alert("send");
}
// prevent default
e.preventDefault();
})
答案 0 :(得分:1)
您分配一个变量而不是条件,第二个分配单个空格。
submitButton.addEventListener("click", (e) =>{
if(userMessage.value == "") {
submitButton.setAttribute("disabled", true);
alert("fill field");
} if(userMessage.value != "") {
submitButton.setAttribute("disabled", false);
alert("send");
}
// prevent default
e.preventDefault();
})
答案 1 :(得分:0)
您可以将事件侦听器添加到输入元素,并侦听keyup事件。喜欢:
inputField.addEventListener('keyup', e => {
submitButton.setAttribute("disabled", e.target.value === "");
});
答案 2 :(得分:0)
Maby我不正确,但是您想单击禁用的按钮吗?要启用它?我认为当用户在输入字段中键入内容时,maby不会尝试这种方法。所以
// submit message
InputField.addEventListener("keyup", (e) =>{
if(e.target.value = "") {
submitButton.setAttribute("disabled", true);
alert("fill field");
} else if(e.target.value != "") {
submitButton.setAttribute("disabled", false);
alert("send");
}
})
类似的东西
答案 3 :(得分:0)
在输入中添加事件
//when page loads to be disabled
submitButton.setAttribute("disabled", true);
//check when something is changed
userMessage.addEventListener("keyup", (e) =>{
submitButton.setAttribute("disabled", this.value.trim() == "");
})
答案 4 :(得分:0)
您的代码有几个问题:
" "
和=
的值分配给userMessage
,但是您可能打算检查该值是否为空。使用==
或什至更好的===
。" " !== ""
)组成。使用.trim()
来实际修剪一个值周围的所有空白。else
语句。input
事件上添加事件监听器,然后启用/禁用按钮。disabled
将属性false
设置为setAttribute
在这里不起作用,因为setAttribute
将其转换为 String 。因此,从技术上讲,这仍然是正确的。而是直接在输入元素上设置disabled
,或使用removeAttribute
重新启用它。这里是一个示例,使用input
事件来禁用和启用按钮。请注意,该按钮最初并未禁用。为了解决这个问题,我创建了checkIfSet
函数,因此我可以在addEventListener
上进行设置,也可以调用它来检查是否需要禁用按钮。
const submitButton = document.querySelector('#submitButton');
const userMessage = document.querySelector('#userMessage');
const checkIfSet = () => {
const trimmedInput = userMessage.value.trim();
if (trimmedInput == '') {
submitButton.disabled = true;
console.log('disabled');
} else {
submitButton.disabled = false;
console.log('enabled');
}
};
const submit = (e) => {
console.log('send');
e.preventDefault();
}
// submit message
userMessage.addEventListener('input', checkIfSet);
submitButton.addEventListener('click', submit);
checkIfSet();
button:disabled {
background: red;
opacity: .5;
}
<input type="text" id="userMessage" />
<button id="submitButton">button</button>
答案 5 :(得分:0)
简单而简短的方法:
<button>
oninput
事件附加到<input/>
,这将切换<button>
的禁用状态尝试
<input type="text" id="userMessage" value="" oninput="this.value == '' ? document.querySelector('#submitButton').disabled = true : document.querySelector('#submitButton').disabled = false"/>
<button disabled id="submitButton">Submit</button>