2012-08-08 25 views
8

Girdi türünü değiştirmeye çalışıyorum, özellikle de girdiye tıklama girdikten sonra type="text" değerini type="date" olarak değiştirmem gerekiyor.jquery öğesini kullanarak Girdi öğesinin türünü değiştirin

<input type="text" placeholder="DOB" id="dob" name="dob" /> 
<script> 
    $("#dob").click(function() { 
     $(this).attr('type', 'date'); 

    }); 
</script> 

Bunu bir iPhone Uygulaması için gerçekleştirmek istiyorum. Bu iphone 4'te çalışmıyor. Bunu nasıl yapabilirim?

$("#dob").on('click', function(){ 
    $(this).prop('type', 'date'); 
});​ 

Ve document.ready fonksiyonunda olduğu tamamlamayı unutmayın:

+2

Bunu yapmak için nedeninizi sorabilir miyim? Eminim daha iyi bir yol olmalı. – Undefined

+0

iphone 4'de, yer tutucu veri girişi için gösterilmez. Bu yüzden, alanı tıkladıktan sonra türü değiştirmek istiyorum – sree

+0

İki girdi alanına sahip olun ve metin alanını gizleyin ve tıklama alanına tarih alanını gösterin. – Ankur

cevap

21

kullanın bu kod:

0

Eğer jQuery

$('body').delegate('#dob','click',function(){ 
      $(this).attr('type', 'date'); 

     }); 

önceki sürümünü kullanın Yoksa son kullanırsanız cevabını

0

bakınız bu çalışma jsfiddle @adeno görürseniz.

Tarayıcıdaki kısıtlamalar nedeniyle .attr kullanarak girdinin türünü değiştiremezsiniz.

Uncaught Error: type property can't be changed 

Sen burada altta yatan bir sorunun biraz olabilir düşünüyorum .prop()

$("#dob").on('click', function(){ 
    $(this).prop('type', 'date'); 
});​ 

kullanarak türünü değiştirebilirsiniz: konsola gelen bu uyarıyı unutmayın. Kullanıcı, metin kutusu değiştirme türüyle karıştırılmayacak mı?

Mümkünse, kullanıcıya gösterilmeden önce metin kutusunun türünü değiştirmeyi denemelisiniz.

0

http://jsfiddle.net/HNKkW/ senin sorunundan için doğru çözüm .focus ve .prop özelliklerini kullanıldığını düşünüyorum: Burada

<input type="text" placeholder="DOB" id="dob" name="dob" /> 
<script> 
    $("#dob").click(function(){ 
     $(this).prop('type', 'date'); 

    }); 
</script> 

keman olduğunu.

<script> 
    $("#dob").focus(function() { 
     $(this).prop('type', 'date'); 

    }); 
</script> 
0
beni doğrudan eleman çalışma değildi üzerinde, bu ancak işe yaramaz bir sürü sonra benim için çalıştı pervane kullanmak için

, bu yüzden paylaşmak ve belki birilerine baş ağrısı kurtarmak istiyordu.

$(document).on('change', '#showPass', function() { 
    if ($(this).is(':checked')) { 
     $(this).parents('form').find('#passField').prop("type", "text"); 
    } else { 
     $(this).parents('form').find('#passField').prop("type", "password"); 
    } 
}); 
İlgili konular