我需要在用户选择一个选项时启用提交按钮,这是一个动态数据。 我的HTML:
<form method="post" action="xxx" id="member">
<tr>
<td>1</td>
<select name="status">
<option value="a">aktif</option>
<option value="l">terkunci</option>
<option value="b" selected="b">blokir</option>
</select>
</td>
<input type="hidden" name="update_buyer" value="TRUE" />
<input type="hidden" name="id" value="1" />
<td>
<button role="button" data-toggle="modal" data-target="#modal" class="btn btn-danger delete">Delete</button>
<input type="submit" class="btn btn-primary save" disabled="disabled" value="Save">
</td>
</tr>
</form>
<form method="post" action="xxx" id="member">
<tr>
<td>2</td>
<td>
<select name="status">
<option value="a" selected="a">aktif</option>
<option value="l">terkunci</option>
<option value="b">blokir</option>
</select>
</td>
<input type="hidden" name="update_buyer" value="TRUE" />
<input type="hidden" name="id" value="2" />
<td>
<button role="button" data-toggle="modal" data-target="#modal" class="btn btn-danger delete" data-email="tess@email.com">Delete</button>
<input type="submit" class="btn btn-primary save" disabled="disabled" value="Save">
</td>
</tr>
</form>
我试试
$('select').change(function(){
$('.save').removeAttr('disabled');
}
但它启用了所有提交按钮,我只想启用哪个用户点击,而不是所有提交按钮。
也许喜欢
$('select').change(function(){
$(this).parent('form').find('.save').removeAttr('disabled');
}
但它不起作用:(我该怎么做?帮助......
答案 0 :(得分:2)
使用.prop()
:
$('select').change(function(){
$(this).parent().siblings().find('.save').prop('disabled', false);
});
您有same id for both forms
这可能导致问题,its invalid
可以使用这种方式。单页ID should be unique
到元素。
答案 1 :(得分:1)
尝试这个 -
$(document).ready(function(){
$('select').change(function(){
$('.save').removeAttr('disabled');
});
});
答案 2 :(得分:0)
试试这个
$('select').change(function(){
$('.save').prop("disabled", false);
}
希望这有帮助
答案 3 :(得分:0)
.parent方法只在DOM树上运行一次,因此只有表单元素是select元素的中间父元素时才能使用代码,在这种情况下它不是。请改用.parents()。
$('select').change(function(){
$(this).parents('form').find('.save').removeAttr('disabled');
}
另请注意,您的第一个选择不在&lt; td&gt;
中编辑:使用.parent()的其他建议似乎正在利用您的无效HTML(tr没有表,未打开的td等),它们无法使用正确的html,删除行和列并使用其他元素或构建适当的有效表(每个表单一个表)
答案 4 :(得分:0)
您的第二个代码正在运行,但是您的HTML标签无效..请将其删除..
here是使用您的代码的工作小提琴。
$('select').change(function(){
$(this).parent('form').find('.save').removeAttr('disabled');
});
-^----here
注意:我可以看到你在更改功能结束时缺少括号...(不确定是否是拼写错误)
答案 5 :(得分:0)
JSFiddle here
$('select').change(function(){
$(this).parent().children('.save').prop('disabled', false);
});
答案 6 :(得分:0)
为每个表单提供不同的ID名称..它们都是id =“member”,它们必须是唯一的。不确定那是你的错误。
即使使用相同的ID,这对我也有用。
$('#member select[name=status]').change(function(){
$('#member input[type="submit"]').removeAttr('disabled');
})