Giriş alanlarına jQuery ekleme gerekli


171

JQuery otomatik olarak tüm girdi alanlarıma html5 doğrulama kullanarak gerekli yazma yolları arıyorlar ama ben nereye yazmak için sorun yaşıyorum.

Bunu almak istiyorum

 <input type="text" name="first_name" value="" id="freeform_first_name"
 maxlength="150">

ve otomatik olarak eklemek gelmiş gereken kapanış etiketinden önce

 <input type="text" name="first_name" value="" id="freeform_first_name"
 maxlength="150" required>

Çizgisinde bir şeyler yapabileceğimi düşündüm

$("input").attr("required", "true");

Ama işe yaramıyor. Herhangi bir yardım büyük beğeni topluyor.


2
Dom'a hazır değil mi? $(function(){....});
PSL


'giriş' bir id ise, jquery seçicideki # eksiktir.
John Meyer

@JohnMeyer "input" bir etiket seçicidir. Giriş etiketlerini hedefliyorsanız # gerekmez
Spartacus

Yanıtlar:


420
$("input").prop('required',true);

DEMO FIDDLE


1
Hmm, bir gönderme düğmesi ekledi ancak giriş alanlarına gerekli özelliği doğrulamıyor veya eklemiyor. jsfiddle.net/japaneselanguagefriend/LEZ4r
Miura-shi

1
@JohnMeyer "input" bir etiket seçici
morefromalan

1
bir TypeError: element.prop is not a functionhata var
davideghz

@ Miura-shi <form></form>jsFiddle'nızdaki etiketleri eksik
JESTech

Birisine yardımcı olabilirse: bu benim için işe yaramadı çünkü onu çağırmadan önce.prop('required',true) girişi çağırıyordum . .css("display", "block")
elektrot

52

Attr kullanarak yapabilirsiniz, yaptığınız hata gerçek tırnak içine koymak olduğunu. bunun yerine şunu deneyin:

$("input").attr("required", true);

2
@JohnMeyer "giriş" bir etiket seçicinin adıdır
dave4jr

requiredbir boolean özniteliğidir ve yalnızca atlanmalıdır ("false" için) veya "required""true" için adıyla (yani ) aynı değere sahip olmalıdır . Aslında kullanmak daha iyi .prop().
Alnitak

@Alnitak IE ile uyumlu bir site yapmak için çalışıyorsanız prop(), modern tarayıcılarda olduğu gibi orada çalışmaz. Kullanmak $(ele).attr("required", true)ve falsekaldırmak için hala en iyisi .
Oliver Heward

29

Aşağıdaki uygulamaların etkili olduğunu gördüm:

$('#freeform_first_name').removeAttr('required');

$('#freeform_first_name').attr('required', 'required');

Bu komutlar (attr, removeAttr, prop) kullandığınız JQuery sürümüne bağlı olarak farklı davranır. Lütfen buradaki belgelere bakın: https://api.jquery.com/attr/


6

kullanma .attrYöntemi

.attr(attribute,value); // syntax

.attr("required", true);
// required="required"

.attr("required", false);
// 

kullanma .prop

.prop(property,value) // syntax

.prop("required", true);
// required=""

.prop("required", false);
//

Buradan daha fazlasını okuyun

https://stackoverflow.com/a/5876747/5413283


4

Jquery 1.11.1'in bunu güvenilir bir şekilde yapmadığını buldum.

Kullandım $('#estimate').attr('required', true)ve$('#estimate').removeAttr('required') .

Kaldırma requiredişlemi güvenilir değildi. Bazen requiredniteliği değersiz bırakır . Yana requireddeğeri olmayan bir Boole attibute, onun sadece varlığı olduğu, tarayıcı olarak tarafından görülürtrue .

Bu hata aralıklıydı ve onunla uğraşmaktan yoruldum. Hesabına geçildi document.getElementById("estimate").required = trueve document.getElementById("estimate").required = false.


removeAttrbana çalışmıyor. Sonra çözümünüzü kullanıyorum ve iyi çalışıyor. Teşekkürler!
Diego Somar

4

İçine olmamalı gerçek ile çift tırnak bunun gibi olmalıdır ""

$(document).ready(function() {            
   $('input').attr('required', true);   
});

Ayrıca prop kullanabilirsiniz

jQuery(document).ready(function() {            
   $('input').prop('required', true);   
}); 

Doğru yerine gerekli deneyebilirsiniz. Gibi

$('input').prop('required', 'required');
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.