5 回答

TA貢獻1795條經驗 獲得超7個贊
我不完全確定你想要什么;這接近您要尋找的嗎?
您可能執行了此操作,但沒有將其包含在您的代碼片段中,但我們需要在每次編輯表單時運行它。我們向輸入添加一個事件偵聽器。
const input = document.getElementById('npo-registration-number');
input.addEventListener('input', () => {
// set the border to red if the value is < 7 characters
if (input.value.length < 7) {
input.style.borderColor = 'red';
return;
}
// otherwise, set it to green
input.style.borderColor = 'green';
});
這解決了一個問題:除非表單的值是空字符串,否則不要將邊框的顏色設置為紅色。相反,當輸入長度低于 7 時,我們希望邊框為紅色。

TA貢獻1818條經驗 獲得超8個贊
您需要捕獲input
事件,以便 js 可以評估和更新。?
? ? const ev3 = document.getElementById("npo-registration-number");
? ? ?let flag3 = true;
? ? ?ev3.addEventListener('input', (e) => {
? ? ? ?const val = e.target.value;
? ? ? ?if (val.length === 7){
? ? ? ? ? ? ? ? ev3.style.borderColor = "green";
? ? ? ? ? ? ? ? flag3 = true;? ? ? ? ??
? ? ? ? }
? ? ? ? else {
? ? ? ? ? ?ev3.style.borderColor = "red";
? ? ? ? ? ?flag3 = true;? ?
? ? ? ? }
? ? ?});
input {
? outline: 0;
? border: 1px solid;
}
<input id="npo-registration-number" type='text'>

TA貢獻1811條經驗 獲得超4個贊
您可以只使用為其運行此功能的按鈕,例如send或post按鈕(許多網站使用此方法)。
function click(){
v3 = document.getElementById("npo-registration-number");
flag3 = true;
if (val >= 3 || val == 0) {
if (v3.value == "") {
v3.style.borderColor = "red";
flag3 = false;
}
else if (v3.value.length === 7){
v3.style.borderColor = "green";
flag3 = true;
}
}
}

TA貢獻1856條經驗 獲得超11個贊
是因為你的條件
if (v3.value == "") {
v3.style.borderColor = "red";
flag3 = false;
}
當您開始刪除輸入中的字符時,您的輸入不會再次變為紅色,因為僅當沒有字符時它才是紅色,并且輸入 7 個字符后它會變為綠色。

TA貢獻1796條經驗 獲得超10個贊
請嘗試這個
v3 = document.getElementById("npo-registration-number");
flag3 = true;
if (v3.value == "") {
v3.style.borderColor = "red";
flag3 = false;
} else {
if (v3.value.length < 7){
v3.style.borderColor = "red";
flag3 = false;
}
else {
v3.style.borderColor = "green";
flag3 = true;
}
}
添加回答
舉報