J'ai besoin de désactiver les options avec la valeur "- Epuisé -" dans une liste de menus déroulants dynamiques. Comment puis-je le faire facilement avec jQuery? Ci-dessous le HTML
<select id="field_0_1" class="text_select" name="field_0_1" onChange="">
<option value="">- Preferred Time -</option>
<option value="- Sold Out -">- Sold Out -</option>
<option value="2:30 - 4:00pm">2:30 - 4:00pm</option>
</select>
<select id="field_0_2" class="text_select" name="field_0_2" onChange="">
<option value="">- Preferred Time -</option>
<option value="- Sold Out -">- Sold Out -</option>
<option value="2:30 - 4:00pm">2:30 - 4:00pm</option>
</select>
<select id="field_0_3" class="text_select" name="field_0_3" onChange="">
<option value="">- Preferred Time -</option>
<option value="- Sold Out -">- Sold Out -</option>
<option value="2:30 - 4:00pm">2:30 - 4:00pm</option>
</select>
$("select option[value*='Sold Out']").prop('disabled',true);
$('#previous_select').on('change', function() {
// after creating the option
// try following
$("select option[value*='Sold Out']").prop('disabled',true);
});
Démo de travail http://jsfiddle.net/BYkVW/ ou http://jsfiddle.net/BYkVW/1/
J'espère que cela aide les besoins :)
code
$("#field_0_1 option[value='- Sold Out -']").attr('disabled','disabled');
ou
$("#field_0_1 option[value='- Sold Out -']").prop('disabled','disabled');
image de travail
function lockDownDropDownList(ddlName) {
ddlName = "#" + ddlName;
var chosenValue = $(ddlName).val();
var downDownListItems = $(ddlName).children('option').map(function (i, e) {
return e.value || e.innerText;
}).get();
downDownListItems.forEach(function (item) {
if (item != chosenValue)
{
$("select option[value*='" + item + "']").prop('disabled', true);
}
});
}
Si quelqu'un souhaite désactiver une liste déroulante par texte au lieu de valeur, voici ce que j'ai fait:
$("#DDL option").filter(function () {
return $(this).text() === "Text 1" ||
$(this).text() === "Text 2" ||
$(this).text() === "Text 3";
}).prop("disabled", true);
Ici, j'ai fait une solution pour la requête ci-dessus. lien de démonstration comme ci-dessous:
Démo: http://codebins.com/bin/4ldqp92
HTML:
<select id="field_0_1" class="text_select" name="field_0_1" onChange="">
<option value="">
- Preferred Time -
</option>
<option value="- Sold Out -">
- Sold Out -
</option>
<option value="2:30 - 4:00pm">
2:30 - 4:00pm
</option>
</select>
<select id="field_0_2" class="text_select" name="field_0_2" onChange="">
<option value="">
- Preferred Time -
</option>
<option value="- Sold Out -">
- Sold Out -
</option>
<option value="2:30 - 4:00pm">
2:30 - 4:00pm
</option>
</select>
<select id="field_0_3" class="text_select" name="field_0_3" onChange="">
<option value="">
- Preferred Time -
</option>
<option value="- Sold Out -">
- Sold Out -
</option>
<option value="2:30 - 4:00pm">
2:30 - 4:00pm
</option>
</select>
JQuery:
$(function() {
$("select").click(function() {
$(this).find("option[value*='Sold Out']").prop("disabled", true);
});
});
$("#ddlList option[value='jquery']").attr("disabled","disabled");