2016-07-17 74 views
0

我想做一個簡單的用戶輸入文本,併爲了避免問題,我想使提交按鈕不可點擊,如果沒有輸入文字。這是我到目前爲止有:方法只調用OnLoad Jquery

$(function() { 
    if ($("#formSearchUserId").val() == "") { 
    $('#userIdBtn').prop('disabled', true); 
    } else { 
    $('#userIdBtn').prop('disabled', false); 
    } 
}); 

這工作的onload因爲因爲在輸入任何文字在默認情況下,它會禁用按鈕。但是,當我在輸入中輸入值時,按鈕保持禁用狀態。

任何幫助將不勝感激。

+3

看看jQuery的['變化()'事件處理(https://api.jquery.com/change/) – jakerella

+0

使用'input'和/或' keyup'事件也是如此,因爲只有離開該字段時'change'纔會被觸發。 – nnnnnn

回答

0

您應該將代碼包裝在$("#formSearchUserId").change(function(){ //code })事件處理程序中。它所做的是監視輸入中的變化,並觸發發生變化時傳遞給它的函數。

$(document).ready(function(){ 
 
    $("#formSearchUserId").change(function() { 
 
    console.log($("#formSearchUserId").val()) 
 
    if ($("#formSearchUserId").val() == "") { 
 
    $('#userIdBtn').prop('disabled', true); 
 
    } else { 
 
    $('#userIdBtn').prop('disabled', false); 
 
    } 
 
}).change(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id=formSearchUserId name=formSearchUserId /> 
 
<button id=userIdBtn>Search</button>

+1

您應該將'.change()'鏈接到'.change(function(){...})'末尾以立即調用處理程序一次(否則該按鈕默認啓用)。 – nnnnnn

0

keyup

$(document).ready(function(){ 
 
    if ($("#formSearchUserId").val() == "") { 
 
    $('#userIdBtn').prop('disabled', true); 
 
    } 
 
    $("#formSearchUserId").keyup(function() { 
 
    console.log($("#formSearchUserId").val()) 
 
    if ($("#formSearchUserId").val() == "") { 
 
    $('#userIdBtn').prop('disabled', true); 
 
    } else { 
 
    $('#userIdBtn').prop('disabled', false); 
 
    } 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id=formSearchUserId name=formSearchUserId /> 
 
<button id=userIdBtn>Search</button>

0

您也可以看看.keyup。只要檢查value的可用性。您可以添加.trim以避免僅存在空格的情況。

$("#formSearchUserId").on("keyup", function(){ 
 
    $('#userIdBtn').prop('disabled', !this.value.trim().length>0) 
 
}) 
 

 
$(function(){ 
 
    $("#formSearchUserId").trigger("keyup"); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<input type="text" id="formSearchUserId"/> 
 
<button id="userIdBtn">Id Btn</button>