【发布时间】:2012-02-15 00:35:17
【问题描述】:
我有 2 个可选的文本框,只有 1 个可以包含数据。我需要它在输入内容时动态启用/禁用另一个文本框。默认情况下,它们都应该启用,但是当在另一个中输入某些内容时应该禁用它们。我使用下面的代码进行了此操作,但现在似乎没有这样做。它基本上每半秒检查一次以查看是否输入了值。
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 函数。有什么想法吗?
【问题讨论】:
-
都是很好的答案,我使用了其中一些的位。更新了 JSfiddle 示例。
标签: javascript jquery textbox