2010-09-18 10 views
8

Bu sonuca ulaşmak için bir sorunum var, ihtiyacım olan şey hemen hemen giriş alanına metin girilene kadar gönderme düğmesini devre dışı bırakmaktır. Bazı işlevleri deniyorum ama sonuçsuz. Bu konuda bana yardımcı olabilirseniz, gerçekten takdir edilecektir.Giriş alanına metin girilene kadar gönderme düğmesini nasıl devre dışı bırakabilirim?

HTML işaretleme

<form action="" method="get" id="recipename"> 
<input type="text" id="name" name="name" class="recipe-name" 
    value="Have a good name for it? Enter Here" 
    onfocus="if (this.value == 'Have a good name for it? Enter Here') {this.value = '';}" 
    onblur="if (this.value == '') {this.value = 'Have a good name for it? Enter Here';}" 
/> 
<input type="submit" class="submit-name" value="" /> 
</form> 

sayesinde önceden.

cevap

5

(jquery için örnek vererek) gibi bazı javascript fonksiyonu:

var initVal = "Have a good name for it? Enter Here"; 
$(document).ready(function(){ 
    $(".submit-name").attr("disabled", "true"); 
    $(".recipe-name").blur(function(){ 
     if ($(this).val() != initVal && $(this).val() != "") { 
      $(".submit-name").removeAttr("disabled"); 
     } else { 
      $(".submit-name").attr("disabled", "true");   
     } 
    });  
}); 

jsfiddle içinde bakın.

+0

Bu aradığım cevabı, yardımlarınız için çok teşekkürler. – Ozzy

+1

@Ozzy: Beklerseniz – Topera

1

çağrı aşağıda Bu kullanabilirsiniz onkeyup olay

function handleSubmit() 
{ 
if($.trim($('#name').val() == '')) 
{ 
$('.submit-name').attr('disabled','disabled'); 
} 
else 
{ 
$('.submit-name').attr('disabled',''); 
} 
} 
0
$("#textField").keyup(function() { 
    var $submit = $(this).next(); // or $("#submitButton"); 
    if(this.value.length > 0 && this.value != "Default value") { 
     $submit.attr("disabled", false); 
    } else { 
     $submit.attr("disabled", true); 
    } 
}); 
1

Bu deneyebilirsiniz: accpeted çözeltisi ile

var nameText = $("#name"); 

nameText.attr("disabled", "disabled"); 

nameText.change(function() { 
    if(nameText.val().length > 0) { 
    nameText.attr("disabled", ""); 
    } else { 
    nameText.attr("disabled", "disabled"); 
    } 

}); 
+1

uzunluğunu kontrol etmeden önce değeri kırpmayı unutma –

5

tek sorun odağı metin alanından kaldırılır sonra düğme (elbette içindeki verileri girdikten sonra) etkin olmasıdır. Herhangi bir metin alana girer girmez düğmenin etkinleştirilmesi gerekmiyor mu? İşte bunu uygulayan bir çözüm. başka çözümden

Bağlantı: Böyle Keep button disabled if text is not entered

şey:

$('.recipe-name').on("keyup", action); 
function action() { 
    if($('.recipe-name').val().length > 0) { 
     $('#submit-name').prop("disabled", false); 
    }else { 
     $('#submit-name').prop("disabled", true); 
    } 
} 
İlgili konular