我有一个HTML表单两个领域禁用领域:使用JavaScript的HTML表单
<input type="text" name="name1"/>
<input type="text" name="name2"/>
是否有使用JavaScript的方式,如果用户用户输入文本的第一次测试中,第二文本框是禁用的,反之亦然?
我有一个HTML表单两个领域禁用领域:使用JavaScript的HTML表单
<input type="text" name="name1"/>
<input type="text" name="name2"/>
是否有使用JavaScript的方式,如果用户用户输入文本的第一次测试中,第二文本框是禁用的,反之亦然?
下面是一个非常简单的例子(下面的jsfiddle链路):
<input type="text" name="name1" id="name1" placeholder="Name 1"/>
<input type="text" name="name2"id="name2" placeholder="Name 2"/>
var name1 = document.getElementById('name1'),
name2 =document.getElementById('name2');
name1.onkeyup = function(e) {
if (name1.value.length > 0) {
name2.setAttribute('disabled', 'disabled');
} else {
name2.removeAttribute('disabled');
}
}
name2.onkeyup = function(e) {
if (name2.value.length > 0) {
name1.setAttribute('disabled', 'disabled');
} else {
name1.removeAttribute('disabled');
}
}
您可以使用jQuery通过禁用未使用keyup()事件与not()方法结合输入的输入来实现。这将是这样的:
$(function() {
var textLength;
$('input').keyup(function() {
textLength = $(this).val().length;
if (textLength > 0) {
$('input').not(this).attr('disabled','disabled');
} else {
$('input').removeAttr('disabled');
}
});
});
input[type="text"]:disabled {
background: #dddddd;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="name1"/>
<input type="text" name="name2"/>
jQuery的方式:
首先,你必须创建CSS类 '已禁用'。
<style>
.disabled {
opacity: 0.5;
pointer-events: none;
}
</style>
然后,您将事件侦听器“更改”添加到您的输入。
$("input[value='name1']").change(function() {
$("input[value='name2']").addClass('disabled');
});
和
$("input[value='name2']").change(function() {
$("input[value='name1']").addClass('disabled');
});
这将这样的伎俩。当用户更改输入值时,它会将类“禁用”添加到另一个输入。
这是一个清晰的JavaScript的答案。使用禁用属性的优点是,即使列表中也不可能将输入放入其他字段中。
在片段中,如果两个输入字段均为空,禁用也会重置。
var in1 = document.getElementById("input1"),
in2 = document.getElementById("input2");
function doOnChange() {
if (in1.value != "") {
in1.disabled = false;
in2.disabled = true;
} else if (in2.value != "") {
in1.disabled = true;
in2.disabled = false;
} if (in1.value == "" && in2.value == "") {
in1.disabled = false;
in2.disabled = false;
}
}
in1.addEventListener("keyup", doOnChange);
in2.addEventListener("keyup", doOnChange);
<input id="input1" />
<input id="input2" />
function myFunction() {
var a = document.getElementById('input1');
var b = document.getElementById('input2');
if (a.value.length == 0 && b.value.length == 0) {
a.disabled = false;
b.disabled = false;
} else if (a.value.length == 0) {
a.disabled = true;
} else if (b.value.length == 0) {
b.disabled = true;
}
}
<input type="text" id="input1" onkeyup="myFunction()" />
<input type="text" id="input2" onkeyup="myFunction()" />
提示,请尝试使用onblur事件这也许可能。试试吧,让我们知道 – Obsidian
是的,有一种方法。 – j08691
您可以将“disabled”属性添加到输入标签。 – TheMintyMate