Salt okunur bir giriş yapmak için jQuery'i nasıl kullanabilirim?


142

Aşağıdaki girdiye sahibim:

  <input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname"/>

Bu öğeyi, öğeyi veya değerini değiştirmeden salt okunur bir girdi yapmak için jQuery'i nasıl kullanabilirim?

Yanıtlar:


255

Bu günlerde jQuery 1.6.1 veya üstü ile boolean öznitelikleri / özellikleri ayarlanırken .prop () kullanılması önerilir.

$("#fieldName").prop("readonly", true);

89

aşağıdaki özelliği eklemeniz yeterlidir

// for disabled i.e. cannot highlight value or change
disabled="disabled"

// for readonly i.e. can highlight value but not change
readonly="readonly"

jQuery (yedek elemana değişikliği yapmak için disablediçin readonlyayar için aşağıda readonlyözniteliği).

$('#fieldName').attr("disabled","disabled") 

veya

$('#fieldName').attr("disabled", true) 

NOT: jQuery 1.6 itibariyle, .prop()yerine kullanılması önerilir .attr(). Yukarıdaki kod yerine haricinde tamamen aynı çalışacaktır .attr()için .prop().


4
bir alanı devre dışı bırakmak, onu düzenlenebilir hale getirmekle aynı şey değildir, değil mi? devre dışı bırakmak da göndermez
Dave

2
@ Doğru olun. Ayrıca salt okunur girişler odaklanabilir, devre dışı girişler olamaz
Russ Cam

75

Bir girişi salt okunur yapmak için:

 $("#fieldName").attr('readonly','readonly');

okuma / yazma yapmak için:

$("#fieldName").removeAttr('readonly');

özelliğin eklenmesi disableddeğeri yazı ile göndermez.


7

Bunu sadece işaretleyerek disabledveya yapabilirsiniz enabled. Bunu yapmak için bu kodu kullanabilirsiniz:

//for disable
$('#fieldName').prop('disabled', true);

//for enable 
$('#fieldName').prop('disabled', false);

veya

$ ('# fieldName'). prop ('salt okunur', doğru);

$ ('# fieldName'). prop ('salt okunur', yanlış);

--- Attr yerine pervane kullanmak daha iyidir.


7
Devre dışı bırakılan girişler form post / get formunda gönderilmez.
Nielsvh

4

Metin kutusunu ReadOnly veya Not değil yapmak için bu örneği kullanın.

<input type="textbox" class="txt" id="txt"/>
<input type="button" class="Btn_readOnly" value="Readonly" />
<input type="button" class="Btn_notreadOnly" value="Not Readonly" />

<script>

    $(document).ready(function(){
       ('.Btn_readOnly').click(function(){
           $("#txt").prop("readonly", true);
       });

       ('.Btn_notreadOnly').click(function(){
           $("#txt").prop("readonly", false);
       });
    });

</script>

3

İki yani nitelikleri vardır readonlyve disabledyarı salt okunur girişi yapabilirsiniz. Ancak aralarında küçük bir fark var.

<input type="text" readonly />
<input type="text" disabled />
  • readonlyÖzellik girdi metni devre dışı yapar ve kullanıcılar artık bunu değiştirmek mümkün değildir.
  • Bu disabledözellik yalnızca giriş metninizi devre dışı bırakacak (değiştirilemez) değil aynı zamanda gönderilemez .

jQuery yaklaşımı (1):

$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);

jQuery yaklaşımı (2):

$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");

JavaScript yaklaşımı:

document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;

PS ile proptanıştırıldı jQuery 1.6.


0

Verilen -

<input name="foo" type="text" value="foo" readonly />

bu çalışır - (jquery 1.7.1)

$('input[name="foo"]').prop('readonly', true);

salt okunur ve salt okunur olarak test edildi - ikisi de çalıştı.


-1

Kullanım özniteliği devre dışı bırakılmış olabilir:

<input disabled="disabled" id="fieldName" name="fieldName" type="text" class="text_box" />

Veya sadece etiket etiketini kullanın:;)

<label>

1
Soru, "Dinamik olarak yapılması gerektiği anlamına gelen" ile jQuery "ve" salt okunur "(devre dışı bırakılandan farklı) dedi.
Quentin

-1
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
    <title></title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

</head>
<body>
    <div>
        <input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname" />
    </div>
</body>

<script type="text/javascript">
    $(function()
    {
        $('#fieldName').attr('disabled', 'disabled');

    });
</script>
</html>

-1

Belki bunu eklemek de anlamlıdır.

$('#fieldName').prop('readonly',false);

açma / kapatma seçeneği olarak kullanılabilir ..


Bunu jQuery 3.3.1 ile denedim ve sadece readonlygeçilen değere bakılmaksızın öğeye bir öznitelik ekler . Bu nedenle, örneğiniz, görünüşte değeri false olarak ayarlamasına rağmen, giriş alanını salt okunur hale getirecektir.
TMN

-1

JQuery 1.12.1, benim uygulama kodu kullanır:

$('"#raisepay_id"')[0].readOnly=true;

$('"#raisepay_id"')[0].readOnly=false;

ve çalışıyor.


-2

SetReadOnly (durum) formlar için çok yararlıdır, herhangi bir alanı doğrudan veya çeşitli koşullardan setReadOnly (durum) olarak ayarlayabiliriz. aynı şekilde.

Sadece örnekler:

$('input').setReadOnly(true);

ya da

var same = this.checked;
$('input').setReadOnly(same);

burada bir onay kutusu tıklamasına bağlı olarak salt okunur özniteliği girdiden ayarlamak ve kaldırmak için state boolean değerini kullanıyoruz.


Yukarıdaki örnekler işe yaramıyor - setReadOnly, jquery veya herhangi bir tarayıcıda yerleşik bir işlev değil
Dave B 84

-3

Html içinde

$('#raisepay_id').attr("readonly", true) 

$("#raisepay_id").prop("readonly",true);

önyüklemede

$('#raisepay_id').attr("disabled", true) 

$("#raisepay_id").prop("disabled",true);

JQuery değişen bir kütüphanedir ve bazen düzenli iyileştirmeler yaparlar. .attr (), HTML etiketlerinden nitelikleri almak için kullanılır ve mükemmel işlev görürken .prop () daha semantik olmak üzere daha sonra eklenmiştir ve 'işaretli' ve 'seçili' gibi değersiz özelliklerle daha iyi çalışır.

JQuery'nin sonraki bir sürümünü kullanıyorsanız, mümkün olduğunca .prop () kullanmanız önerilir.


2
Buna oy verdim, çünkü saçma. Hepsi HTML, JavaScript ve Bootstrap jQuery kullanır, böylece gerçek bile alakalı değildir. Ayrıca, devre dışı bırakılmış ve salt okunur, Bootstrap'in kullanılıp kullanılmamasından bağımsız olarak çalışan iki farklı şeydir.
simontemplar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.