2 回答

TA貢獻1828條經(jīng)驗 獲得超13個贊
看起來您可能正在使用 asp.net Webforms,它可能會受到id/name mangling 的影響,特別是在母版頁發(fā)揮作用的情況下。
讓我們使用數(shù)據(jù)屬性來幫助我們識別組。例如:
<asp:TextBox runat="server" data-requiredgroup="group1" TextMode="text" ID="id1" class="form-control-login" required=""></asp:TextBox>
<asp:TextBox runat="server" data-requiredgroup="group1" TextMode="text" ID="id2" class="form-control-login" required=""></asp:TextBox>
出于演示目的,我將使用純 HTML 來連接 javascript,但它仍然應該可以很好地與您的 Web 表單配合使用
//Get using our data attribute, don't need to worry about name mangling
var groups = document.querySelectorAll("[data-requiredgroup]");
for (var i = 0; i < groups.length; i++) {
? //Add Event Listener
? groups[i].addEventListener("keyup", function() {
? ? //Get group?
? ? let group = document.querySelectorAll("[data-requiredgroup=" + this.dataset.requiredgroup + "]");
? ? for (var g = 0; g < group.length; g++) {
? ? ? //Remove if not empty
? ? ? if (group[g] != this) {?
? ? ? ? group[g].required = (this.value == "");
? ? ? }
? ? }
? });
}
input:required {
? border-color:red;
}
<div>
? Group 1
? <input type="text" data-requiredgroup="group1" required />
? <input type="text" data-requiredgroup="group1" required />
</div>
<div>
? Group 2
? <input type="text" data-requiredgroup="group2" required />
? <input type="text" data-requiredgroup="group2" required />
? <input type="text" data-requiredgroup="group2" required />
? <input type="text" data-requiredgroup="group2" required />
</div>

TA貢獻1900條經(jīng)驗 獲得超5個贊
嘗試使用以下 JavaScript 代碼:
var input1 = document.getElementById("id1");
var input2 = document.getElementById("id2");
input1.addEventListener('keypress', function() {
input1.removeAttribute("required");
input2.removeAttribute("required");
});
input2.addEventListener('keypress', function() {
input1.removeAttribute("required");
input2.removeAttribute("required");
});
添加回答
舉報