Javascript 如果textarea为空,则禁止检查其他复选框
带有一些textarea和sumbit按钮的表单都被禁用,每个textarea旁边都有一个复选框 选中复选框时: 1-显示一条消息(您不应让激活的文本区域为空) 2-提交按钮保持禁用状态 3-开始写入时,隐藏消息并启用按钮 复选框未选中时: 1-消息隐藏 2-如果有一些文本,则与之相关的文本区域被清除 3按钮返回到禁用状态 到目前为止,我的代码如下,一切都很完美。 现在,如果已经有一个复选框已被空文本区域选中,我如何防止选中其他复选框? 逻辑是,如果文本区域已启用,则它必须接收文本Javascript 如果textarea为空,则禁止检查其他复选框,javascript,jquery,html,twitter-bootstrap,checkbox,Javascript,Jquery,Html,Twitter Bootstrap,Checkbox,带有一些textarea和sumbit按钮的表单都被禁用,每个textarea旁边都有一个复选框 选中复选框时: 1-显示一条消息(您不应让激活的文本区域为空) 2-提交按钮保持禁用状态 3-开始写入时,隐藏消息并启用按钮 复选框未选中时: 1-消息隐藏 2-如果有一些文本,则与之相关的文本区域被清除 3按钮返回到禁用状态 到目前为止,我的代码如下,一切都很完美。 现在,如果已经有一个复选框已被空文本区域选中,我如何防止选中其他复选框? 逻辑是,如果文本区域已启用,则它必须接收文本 //处理复
//处理复选框
$('input:checkbox').change(function(){
if($(this.prop('checked')){
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,true);
$(“文本区域”).val(“”);
}
});
//处理文本区
$(“textarea”).keyup(函数(){
var textareaLength=$(this).val().length;
如果(textareaLength==0){
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,错误);
}
});代码>
婴儿期
活跃的
//更多文本区域如下
您可以使用$('input:checkbox:checked')
和filter()
方法添加签入复选框
更改事件,以查找是否有任何空文本区域的选中复选框
。如果有,则不允许选中复选框
$('input:checkbox')。更改(函数(){
if($(this.prop('checked')){
//检查是否有文本区域为空的复选框
var length=$('input:checkbox:checked')。不是(this)。过滤器(函数(){
return!$(this).closest('.form group').find('textarea').val();
}).长度;
//不允许选中复选框
如果(长度>0){
$(this.prop('checked',false);
返回;
}
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,true);
$(“文本区域”).val(“”);
}
});
$(“textarea”).keyup(函数(){
var textareaLength=$(this).val().length;
如果(textareaLength==0){
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,错误);
}
});代码>
婴儿期
活跃的
婴儿期
活跃的
非常感谢您。这正是我需要的。但是我有两个其他复选框,它们没有链接到任何文本区域。如何将它们从函数中删除?对不同类型的复选框使用不同的类。好的,我可以对不同类型的复选框使用不同的类,这是真的,但是连接到文本区域的复选框太多了。如何仅使用未连接到任何文本区域的复选框将其从功能中删除。我尝试了,但失败了。请将类用于其他复选框,如noTextarea
。然后使用$('input:checkbox').not('.noTextarea').change()
。