$input.disabled = true;
හෝ
$input.disabled = "disabled";
සම්මත ක්රමය කුමක්ද? තවද, අනෙක් අතට, ඔබ ආබාධිත ආදානයක් සක්රීය කරන්නේ කෙසේද?
$input.disabled = true;
හෝ
$input.disabled = "disabled";
සම්මත ක්රමය කුමක්ද? තවද, අනෙක් අතට, ඔබ ආබාධිත ආදානයක් සක්රීය කරන්නේ කෙසේද?
Answers:
disabled
දේපල වෙනස් කිරීම සඳහා ඔබ .prop()
ශ්රිතය භාවිතා කළ යුතුය .
$("input").prop('disabled', true);
$("input").prop('disabled', false);
මෙම .prop()
උත්සවය පවතී, නමුත් නැත .attr()
සමාන කරන්නේ:
අක්රීය ගුණාංගය සකසන්න.
$("input").attr('disabled','disabled');
නැවත සක්රීය කිරීම සඳහා, නිසි ක්රමය භාවිතා කිරීමයි .removeAttr()
$("input").removeAttr('disabled');
ඔබට සැමවිටම සත්ය DOM වස්තුව මත විශ්වාසය තැබිය හැකි අතර ඔබ එක් අංගයක් සමඟ පමණක් කටයුතු කරන්නේ නම් අනෙක් විකල්ප දෙකට වඩා ටිකක් වේගවත් විය හැකිය:
// assuming an event handler thus 'this'
this.disabled = true;
.prop()
හෝ .attr()
ක්රම භාවිතා කිරීමේ වාසිය නම් තෝරාගත් අයිතම සමූහයක් සඳහා ඔබට දේපල සැකසිය හැකිය.
සටහන: 1.6 දී ඇත .removeProp()
වැනි ගොඩක් ශබ්ද බව ක්රමය removeAttr()
, නමුත් එය භාවිතා කල යුතු නොවේ වගේ ස්වදේශික ගුණ 'disabled'
ලේඛගතකිරීම සිට උපුටාගැනීම්:
සටහන: පරීක්ෂා කළ, අක්රීය කළ හෝ තෝරාගත් වැනි දේශීය දේපල ඉවත් කිරීමට මෙම ක්රමය භාවිතා නොකරන්න. මෙය දේපල සම්පූර්ණයෙන්ම ඉවත් කරනු ඇති අතර, ඉවත් කළ පසු නැවත මූලද්රව්යයට එකතු කළ නොහැක. මෙම ගුණාංග අසත්ය ලෙස සැකසීමට .prop () භාවිතා කරන්න.
ඇත්ත වශයෙන්ම, මෙම ක්රමය සඳහා නීත්යානුකූල භාවිතයන් බොහොමයක් ඇති බවට මට සැකයක් ඇත, බූලියන් මුක්කු 1.5 ක් තුළ ඔවුන්ගේ “ගුණාංග” සගයන් මෙන් “ඉවත් කිරීම” වෙනුවට ඒවා ව්යාජ ලෙස සැකසිය යුතුය.
':input'
යුත්තේ හුදෙක් නොවේ 'input'
. දෙවැන්න සත්ය <input> මූලද්රව්ය පමණක් තෝරා ගනී.
input,textarea,select,button
භාවිතා කිරීම වඩා ටිකක් හොඳට වඩා :input
- :input
එය තෝරා ගැනීමට තිබෙන නිසා තේරීම් තරමක් අකාර්යක්ෂම ලෙස *
tagname විසින් පසුව එක් එක් මූලද්රව්යය සහ ෆිල්ටර් වැඩි පුඩුවක් - ඔබ tagname තේරීම් 4 සමත් නම් එය සෘජුවම වඩා වේගවත් වේ. එසේම, :input
සම්මත CSS තේරීම් querySelectorAll
.removeProp("disabled")
තෝමස් ඩේවිඩ් බේකර් පෙන්වා දුන් පරිදි ක්රෝම් වැනි සමහර බ්රව්සර් වලදී ෆයර්ෆොක්ස් වැනි සමහරක් මත එය හොඳින් ක්රියාත්මක වන අතර එය භාවිතා කිරීම "දේපල සම්පූර්ණයෙන්ම ඉවත් කිරීම සහ නැවත එකතු නොකිරීම" යන ගැටලුවට හේතු විය. අපි ඇත්තටම මෙහි ප්රවේශම් විය යුතුයි. සෑම විටම .prop("disabled",false)
ඒ වෙනුවට භාවිතා කරන්න
නව සම්මුතීන් සඳහා && එය අනුවර්තනය වීමට හැකි වන පරිදි ඉදිරියට යාම (ECMA6 (????) සමඟ දේවල් විශාල ලෙස වෙනස් නොවන්නේ නම්:
$(document).on('event_name', '#your_id', function() {
$(this).removeAttr('disabled');
});
සහ
$(document).off('event_name', '#your_id', function() {
$(this).attr('disabled','disabled');
});
$(document).on('event_name', '#your_id', function() {...})
ඒ වෙනුවට $('#your_id').on('event_name', function() {...})
. ලෙස විස්තර සඟවන්න .මෙම () ප්රලේඛනය හිටපු භාවිතා නියෝජිත සවන් කිරීමට සියලු event_name
සිදුවීම් බව බුබුල දක්වා document
සහ ගැලපෙන සඳහා ඔවුන් චෙක්පත් #your_id
. දෙවැන්න විශේෂයෙන් $('#your_id')
සිදුවීම් වලට පමණක් සවන් දෙන අතර එම පරිමාණයන් වඩා හොඳය.
// Disable #x
$( "#x" ).prop( "disabled", true );
// Enable #x
$( "#x" ).prop( "disabled", false );
සමහර විට ඔබට ආදාන හෝ ටෙක්ස්ටාරියා වැනි ආකෘති අංග අක්රීය කිරීමට / සක්රීය කිරීමට අවශ්ය වේ. ආබාධිත ගුණාංග "ආබාධිත" ලෙස සැකසීමෙන් මෙය පහසුවෙන් කිරීමට Jquery ඔබට උදව් කරයි. උදා:
//To disable
$('.someElement').attr('disabled', 'disabled');
අක්රීය මූලද්රව්යය සක්රීය කිරීම සඳහා ඔබට මෙම අංගයෙන් "අක්රීය" ගුණාංගය ඉවත් කිරීමට හෝ එහි නූල හිස් කිරීමට අවශ්ය වේ. උදා:
//To enable
$('.someElement').removeAttr('disabled');
// OR you can set attr to ""
$('.someElement').attr('disabled', '');
යොමු කරන්න: http://garmoncheg.blogspot.fr/2011/07/how-to-disableenable-element-with.html
$("input")[0].disabled = true;
හෝ
$("input")[0].disabled = false;
ඔබට මෙය ඔබගේ කේතයේ ගෝලීය තැනක තැබිය හැකිය:
$.prototype.enable = function () {
$.each(this, function (index, el) {
$(el).removeAttr('disabled');
});
}
$.prototype.disable = function () {
$.each(this, function (index, el) {
$(el).attr('disabled', 'disabled');
});
}
එවිට ඔබට පහත සඳහන් දෑ ලිවිය හැකිය:
$(".myInputs").enable();
$("#otherInput").disable();
prop
හා නොවේ attr
සමග disabled
(jQuery 1.6 හෝ ඊට ඉහළ උපකල්පනය කරමින්) එය නිවැරදිව වැඩ කිරීම සඳහා දේපල.
attr
කුමක්ද? මම ඉහත කේතය සමහර ව්යාපෘති වල භාවිතා කරන අතර මට මතක ඇති පරිදි එය හොඳින් ක්රියාත්මක වේ
checked
පිරික්සුම් කොටු වල දේපලයි. භාවිතා කිරීමෙන් attr
එකම ප්රති .ලය නොලැබේ.
ඕනෑම මූලද්රව්යයක් සක්රිය / අක්රීය කළ හැකි ඒවා භාවිතා කිරීමට බොහෝ ක්රම තිබේ :
ප්රවේශය 1
$("#txtName").attr("disabled", true);
ප්රවේශය 2
$("#txtName").attr("disabled", "disabled");
ඔබ jQuery 1.7 හෝ ඊට වැඩි අනුවාදයක් භාවිතා කරන්නේ නම් attr () වෙනුවට prop () භාවිතා කරන්න.
$("#txtName").prop("disabled", "disabled");
ඔබට කිසියම් මූලද්රව්යයක් සක්රීය කිරීමට අවශ්ය නම් එය අක්රීය කිරීම සඳහා ඔබ කළ දෙයට ප්රතිවිරුද්ධ දේ කළ යුතුය. කෙසේ වෙතත් jQuery ඕනෑම ලක්ෂණයක් ඉවත් කිරීමට තවත් ක්රමයක් සපයයි.
ප්රවේශය 1
$("#txtName").attr("disabled", false);
ප්රවේශය 2
$("#txtName").attr("disabled", "");
ප්රවේශය 3
$("#txtName").removeAttr("disabled");
නැවතත්, ඔබ jQuery 1.7 හෝ ඊට වැඩි අනුවාදයක් භාවිතා කරන්නේ නම් attr () වෙනුවට prop () භාවිතා කරන්න. ඒ. JQuery භාවිතයෙන් ඔබ ඕනෑම අංගයක් සක්රිය හෝ අක්රීය කරන්නේ එලෙසයි.
2018 සඳහා යාවත්කාලීන කිරීම:
දැන් jQuery සඳහා කිසිදු අවශ්යතාවයක් නොමැති වන අතර එය එතැන් සිට ටික ගොසින් document.querySelector
හෝ document.querySelectorAll
(විවිධ බලවේග සඳහා) $, ප්ලස් වඩා පැහැදිලි අය ලෙස පාහේ හරියටම සමාන රැකියාවක් කරන්න getElementById
, getElementsByClassName
,getElementsByTagName
"ආදාන-පිරික්සුම් කොටුව" පන්තියේ එක් ක්ෂේත්රයක් අක්රීය කිරීම
document.querySelector('.input-checkbox').disabled = true;
හෝ බහු අංග
document.querySelectorAll('.input-checkbox').forEach(el => el.disabled = true);
ආකෘති මූලද්රව්යය අක්රීය කිරීමට හෝ සක්රීය කිරීමට හෝ jQuery භාවිතා කරමින් ගතිකව පාලනය කිරීමට ඔබට jQuery මුක්කු () ක්රමය භාවිතා කළ හැකිය. මුක්කු () ක්රමයට jQuery 1.6 සහ ඊට වැඩි අවශ්ය වේ.
උදාහරණයක්:
<script type="text/javascript">
$(document).ready(function(){
$('form input[type="submit"]').prop("disabled", true);
$(".agree").click(function(){
if($(this).prop("checked") == true){
$('form input[type="submit"]').prop("disabled", false);
}
else if($(this).prop("checked") == false){
$('form input[type="submit"]').prop("disabled", true);
}
});
});
</script>
අක්රීය කරන්න:
$('input').attr('readonly', true); // Disable it.
$('input').addClass('text-muted'); // Gray it out with bootstrap.
සක්රීය කරන්න:
$('input').attr('readonly', false); // Enable it.
$('input').removeClass('text-muted'); // Back to normal color with bootstrap.
ආදාන වර්ගය සඳහා සත්ය අක්රීය කරන්න:
විශේෂිත ආදාන වර්ගයක නම් ( උදා. පෙළ වර්ග ආදානය )
$("input[type=text]").attr('disabled', true);
සියලු වර්ගවල ආදාන වර්ග සඳහා
$("input").attr('disabled', true);
$("input[name=method]").prop('disabled', true);
මෙය මට වැඩ කරයි
$("#values:input").attr("disabled",true);
$("#values:input").attr("disabled",false);
මම @gnarf පිළිතුර භාවිතා කර එය ශ්රිතයක් ලෙස එකතු කළෙමි
$.fn.disabled = function (isDisabled) {
if (isDisabled) {
this.attr('disabled', 'disabled');
} else {
this.removeAttr('disabled');
}
};
එහෙනම් මේ වගේ පාවිච්චි කරන්න
$('#myElement').disable(true);
සියල්ල අක්රීය කරන්න input
:
[...document.querySelectorAll('input')].map(e => e.disabled = true);
input
සමඟ අක්රීය කරන්නid="my-input"
document.getElementById('my-input').disabled = true;
ප්රශ්නය JQuery සමඟ ය , එය FYI පමණි.
ප්රවේශය 4 (මෙය වල් කෝඩර් පිළිතුරේ දිගුවකි )
මේ වගේ භාවිතා කරන්න,
$( "#id" ).prop( "disabled", true );
$( "#id" ).prop( "disabled", false );
<html>
<body>
Name: <input type="text" id="myText">
<button onclick="disable()">Disable Text field</button>
<button onclick="enable()">Enable Text field</button>
<script>
function disable() {
document.getElementById("myText").disabled = true;
}
function enable() {
document.getElementById("myText").disabled = false;
}
</script>
</body>
</html>
JQuery ජංගම:
$('#someselectElement').selectmenu().selectmenu('disable').selectmenu('refresh', true);
$('#someTextElement').textinput().textinput('disable');
$('#someselectElement').selectmenu().selectmenu('enable').selectmenu('refresh', true);
$('#someTextElement').textinput('enable');