Javascript只允许一个文本框包含值

我有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函数.有任何想法吗?

更新:
http://jsfiddle.net/7mKzy/1/

解决方法:

您可以在文本框中使用事件.change().所以每次文本框都有变化.您可以调用函数来启用或禁用其他文本框.

$("#IdTextbox").change(function () {
        yourFunction();
    });

要检查文本框是否包含某些数据:

if ($('#txt').val() != "") {
           doSomething();
}
上一篇:c – 在系统范围内更改所有窗口文本框的渲染机制


下一篇:java – 在SWT单行文本中添加提示(如在搜索框中)