2013-12-18 26 views
5

Örnek kod html ve komut dosyası aşağıdaki gibi yazdım: Bu kodu çalıştırdığımda öncelikle bu uyarıyı alacağım ama sekmeye basarak cca'da değiştirdiğimde başka bir uyarı alıyorum Düğme daha sonra uyarı göstermiyor. Bu metin kutusunu nasıl kullanır ve diğer metin alanlarını etkinleştirir ve devre dışı bırakır.Metin kutusu nasıl etkinleştirilir ve devre dışı bırakılır jquery

HTML:

<div id="cca" class="leaf"> 
    <label class="control input text" title=""> 
     <span class="wrap">cca</span> 
     <input class="" type="text" value="[Null]"> 
     <span class="warning"></span> 
    </label> 
</div> 

JS:

jQuery(document).ready(function() {   
    alert("hello");   
    jQuery("#cca label.control input").on('change', function (event) { 
     alert('I am pretty sure the text box changed'); 
     event.preventDefault(); 
    }); 
}); 
+0

Öncelikle html dosyanız bozuldu. Etiketin içindeki birçok unsuru kullanabilirsiniz, hoş değil. Ve etiketiniz bu amacı yapmıyor, 'for' özniteliğini kullanmıyorsunuz. – DontVoteMeDown

cevap

1

Ne yapmaya çalışıyoruz ama uyarı çalışma üstesinden gelebilirsiniz gerçekten emin değilim. Temel olarak jQuery "on" işlevini doğru kullanmıyorsunuz. Aşağıdakilerden

$('#thisNeedsToBeContainer').on('focusout', '#elemToBindEventTo', function (event)....

Bir

gerekenler yapacak:

Bu ateş edeceği metin kutusu

$(document).ready(function() {  

    alert("hello");   
    $("#cca").on('focusout', 'label.control input', function (event) { 
     alert('I am pretty sure the text box changed'); 
     event.preventDefault(); 
    }); 
}); 

Bu

bırakıldığında, tetiklenir change

$(document).ready(function() {  
    alert("hello");   
    $("#cca").on('change', 'label.control input', function (event) { 
     alert('I am pretty sure the text box changed'); 
     event.preventDefault(); 
    }); 
}); 

Bu,numaralı telefona bağlanacak Sen girdi odağını kaybettiğinde kadar ateş edecek change olay için dinliyorsunuz

<input class="" type="text" value="[Null]"/> 
+0

Böyle bir tuş olarak kullanabilir miyim ve nasıl ben de benimle paylaştığınız kod için – jasim

+0

teşekkürler u Jon'a şükürler olsun, ama tarayıcımın çalıştığı yerde "açık" ile herhangi bir etkinlik almıyorsunuzdur Ben bu kod ile gidemem ..... "Uncaught TypeError: null flow.html '' yöntemini çağırılamıyor 'hatası' _flowId = viewReportFlow & standAlone = true & _flowId = viewReportFlow & ParentFolderUri =% 2Freports%…: 1035 (anonim işlev) flow.html? _flowId = viewReportFlow ve standAlone = true & _flowId = viewReportFlow ve ParentFolderUri =% 2Freports%…: 1035 n jquery-1.7.1.min.js: 2 o.fireWith jquery-1.7.1.min.js: 2 e.extend .ready jquery-1.7.1.min.js: 2 c.addEventListener.B " – jasim

+0

Değiştirdiğim tek şey jQuery - $ oldu. Uyuşmazlık ayarlarınız olmadığından emin değilsiniz. Yine de 1.7.1'de çalışmalı. belki ... jQuery (document) .ready (function() { alert ("merhaba"); jQuery ("# ​​cca"). Açık ('focusout', 'label.control input', işlev (olay) { alert ('Metin kutusunun değiştiğinden eminim'); event.preventDefault(); }); }); –

1

: 0 JsFiddle

üzerinde

$(document).ready(function() { 
    alert("hello");   
    $("#cca").on('onkeyup', 'label.control input', function (event) { 
     alert('I am pretty sure the text box changed'); 
     event.preventDefault(); 
    }); 
}); 

Bkz Demo yazarak olarak Ayrıca girişini kapatması gerekir . Sağladığınız kod, odak girişten çıktıktan sonra (sekme veya tıklama) bir uyarı tetiklediğinden, yazdıktan sonra ancak odağı değiştirmeden önce bir yanıt beklediğinizi tahmin ediyorum. Bunu başarmak için, bunun yerine input olayını dinleyin.

İlgili konular