我正在创建一个试图结合两种形式的条件逻辑的table
:
1)。 enabling/disabling
一个字段取决于该行中另一个< select >
的{{1}}的{{1}}值。
2)。如果未正确填写并dropdown
,则使用td
方法更改同一字段的CSS。如果它是blur
我希望jQuery忽略enabled
的有效性,因为它稍后将不会在程序中使用。
我有两个功能可以单独工作,但当我尝试组合它们时,它们无法正常工作。
以下是HTML示例:
disabled
这是基于下拉列表启用/禁用“.packSize”输入的jquery函数:
input
如果输入不是“.packSize”中的数字,那么这是用于更改背景颜色的jquery
<tr class="formulaRow">
<td>
<select class="tableDropDown">
<option value="other">The Manufacturer</option>
<option value="me">Me</option>
</select>
</td>
<td>
<input class="packSize" type="number" disabled>
</td>
</tr>
我也试过用&amp;&amp; if语句中的$(".tableDropDown").on('change', function(){
var packSize = $(this).parents('.formulaRow').find('.packSize');
if ($(this).val() === "me") {
$(packSize).prop('disabled', false);
} else {
$(packSize).prop('disabled', true);
}
});
但它也不起作用。
问题在于,如果您停用了$(".packSize").blur(function() {
var tableDropDown = $(this).parents(".formulaRow").find(".tableDropDown");
if ($(this).val() ==="" && $(tableDropDown).val() === "me") {
$(this).parents("td").addClass("redClass");
}
else {
$(this).parents("td").removeClass("redClass");
}
});
字段并且附加了$(this).prop("disabled", false)
字段,则该字段不会input
且仍然有redClass
。
如果detach
为red background
,我希望redClass
自动关闭。
答案 0 :(得分:1)
希望这对你有用。
我刚刚再次引用了父td
元素并删除了该类。即使它不存在,你仍然可以删除&#34;它
$(".tableDropDown").on('change', function(){
var packSize = $(this).parents('.formulaRow').find('.packSize');
if ($(this).val() === "me") {
$(packSize).prop('disabled', false);
} else {
$(packSize).prop('disabled', true);
$(packSize).parents('td').removeClass("redClass");
}
});
$(".packSize").blur(function() {
var tableDropDown = $(this).parents(".formulaRow").find(".tableDropDown");
if ($(this).val() ==="" && $(tableDropDown).val() === "me") {
$(this).parents("td").addClass("redClass");
}
else {
$(this).parents("td").removeClass("redClass");
}