2013-10-01 18 views
1

之前,我創建了一個條件,即當單擊按鈕時,它會從<input id="id" class="req">箱送我ID的價值,並顯示該ID的相關名稱並把它放在名稱<input id="name" class="req">框中。創造條件<input>有值的事件發生的jQuery

所以當我輸入1,我會得到BOB。很基本。

我還有一個條件,即在出現特定的<div>之前,兩個<input>框都應該有值。所以默認情況下這個<div>隱藏

im我正在努力的部分是,每當我點擊按鈕,然後我得到這個名字,儘管我已經成功地填充了我的2 <input>盒子,但<div>仍然不會出現。

這是我的代碼。

//<input> conditions 

$('input.req').on("keyup keypress change", function() { 
    $('input.req').each(function() { 
    if($(this).val() != "") { 
     $("#content").show(); 
    } 
    else { 
     $("#content").hide(); 
    } 
    }); 
}); 

再次,如果你輸入1,你會得到bob。但<div>不會顯示。但如果您手動,填寫文本框,將出現<div>

我希望發生的是什麼,我的輸入ID ,按一下按鈕,得到,將裏面裏面我<input>箱,使<div>出現。

+1

你在使用'$ .each'嗎?有很多input.req。 PLease發佈html也。 – bhb

+0

使用jQuery更改輸入值並不總是觸發更改事件。 http://stackoverflow.com/questions/4672505/why-does-the-jquery-change-event-not-trigger-when-i-set-the-value-of-a-select-us – lemieuxster

+0

@bhb我有3 ,但僅爲了簡單而選擇了2。我使用了每一個,幾乎所有的事情都是讀取的,他們通常引用'each'來檢查每個**元素。不知道如果即時通訊正確,但.. – bobbyjones

回答

0

您也應該檢查在阿賈克斯成功處理您的輸入框因爲現在你只是在做它的關鍵事件:

$.ajax({ 
    url: //url, 
    success: function() { 
     $('input.req').each(function() { 
     if($(this).val() != "") { 
      $("#content").show(); 
     } 
     else { 
      $("#content").hide(); 
     } 
     }); 
    }  
}) 
0

你的問題是你去每一個開關輸入的變化時拋出每個輸入。 只是刪除$('input.req').each(function() {,一切都會好的。

+0

爲什麼把-1?就是那個。當你的輸入改變時,你只需調用顯示/隱藏內容的代碼。目前你的代碼將通過拋出每個input.req,並且當最後一個input.req爲空時,內容被隱藏。 – peernohell