我有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();
}