2012-07-03 62 views
0

有沒有辦法(最好用jQuery)阻止文本輸入,如果其他人包含文本?如果其他人包含文本,則阻止文本字段?

我可以看到一直阻止輸入字段的方法,但不像其他字段那樣動態地包含文本。

<input name="inputone" id="i_one" type="text" value=""> 
<input name="inputtwo" id="i_two" type="text" value=""> 
<input name="inputthree" id="i_three" type="text" value=""> 

這是一個真正簡單的設置。我只需要如果「i_one」包含任何文本,阻止「i_two」和「i_three」接收任何輸入。但如果用戶在提交表單之前刪除了他們在「i_one」中輸入的內容,該塊將被解除,以便用戶可以使用其他字段。

+1

+1因爲我不知道你爲什麼得到了否決票。 – Cecchi

+0

謝謝 - 我認爲這是一個有效的問題:/ bahaha :) – ZipZopZoobityBop

回答

2

這是怎麼回事?

$('input').on('keyup', function() { 
    $(this).siblings().prop('disabled', this.value.length ? true : false) 
}); 

當然,你可能想調整它不作用於所有輸入元素,加入了特殊類,你要聽的元素。

JsFiddle如果你想調整/玩它。

+2

在'$(this).val()'上面使用'this.value' - 你已經爲自己節省了兩次不必要的函數調用。僅僅因爲jQuery提供了一種訪問某些東西的方法,並不意味着它總是適合使用它。 –

+0

謝謝@AnthonyGrist!好點子。 – Cecchi

+0

很適合做一些小的調整 - 謝謝! :) – ZipZopZoobityBop

0

我想出了這個很快。

$(document).ready(function() { 
    $("input").on("input", function() { 
     if ($(this).val() == "") { 
      $("input").removeAttr("disabled"); 
     } 
     else { 
      $("input").attr("disabled", "disabled"); 
      $(this).removeAttr("disabled"); 
     } 
    }); 
}); 
相關問題