我有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