我有2个可选的文本框,只有1个文本框可以包含数据。我需要它动态启用/禁用其他文本框,当有一些东西进入它。默认情况下,它们都应该被启用,但是当另一个内容被输入时应该禁用它们。我已经在下面的代码中工作了,但现在看起来并没有这样做。它基本上每半秒检查一次是否输入一个值。Javascript只允许一个文本框包含值
setInterval(function(){
if ($("input[name=audioUri]").val().length != 0) {
$("input[name=videoUri]").attr("disabled", "disabled");
$("input[name=audioUri]").attr("disabled", "");
} else if ($("input[name=videoUri]").val().length != 0) {
$("input[name=audioUri]").attr("disabled", "disabled");
$("input[name=videoUri]").attr("disabled", "");
} else {
$("input[name=videoUri]").attr("disabled", "");
$("input[name=audioUri]").attr("disabled", "");
}} , 500);
它检查,看看是否已经有值的文本框在页面加载时,并确定如何从那里做,但是当我第一次加载页面时,两个框变得越来越无效。这几乎就像他们认为文本框中已经有东西了。当我检查框的值是空字符串“”,也许我应该检查.val()!=“”?
我想可能有更好的方式来处理它,而不需要setInterval函数。有任何想法吗?
UPDATE: http://jsfiddle.net/7mKzy/1/
所有的都是很好的答案,我从它们中的一些中分出一些已用过的零碎。用JSfiddle示例更新。 – bjo 2012-02-14 16:34:53