2016-07-17 13 views
0

Ich versuche, eine einfache Benutzereingabe Text und um Probleme zu vermeiden, möchte ich die Schaltfläche Senden nicht klicken, wenn kein Text eingegeben. Das ist, was ich habe, so weit:Methode nur OnLoad Jquery

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

Dies funktioniert onload weil da kein Text standardmäßig in der Eingabe ist, wird die Taste deaktivieren. Wenn ich jedoch Werte in die Eingabe eingib, bleibt die Schaltfläche deaktiviert.

Jede Hilfe würde sehr geschätzt werden.

+3

Werfen Sie einen Blick auf die jQuery [ 'Änderung()' Ereignishandler] (https://api.jquery.com/change/) – jakerella

+0

Verwenden Sie die 'input' und/oder' Keyup'-Ereignisse auch, weil 'change' nur ausgelöst wird, wenn Sie das Feld verlassen. – nnnnnn

Antwort

0

Sie sollten Ihren Code in einen Event-Handler wickeln. Was es tut, ist, dass es nach Änderungen in Ihrer Eingabe Ausschau hält und die Funktion auslöst, an die bei Änderungen eine Funktion übergeben wird.

$(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

Sie sollten '.change()' an das Ende von '.change (function() {...})' 'ketten, um den Handler sofort sofort aufzurufen (ansonsten ist die Schaltfläche standardmäßig aktiviert). – nnnnnn

0

mit 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

Sie auch in .keyup aussehen kann. Überprüfen Sie, ob value verfügbar ist. Sie können .trim hinzufügen, um Fälle zu vermeiden, in denen nur Leerzeichen vorhanden sind.

$("#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>

Verwandte Themen